这个应用程序对象表示基于ASP的应用程序。(基于ASP的应用程序定义为虚拟目录及其子目录中的所有.ASP文件。)它共享、存储和检索信息,以响应用户对应用程序的请求。此信息是全局信息(在所有用户会话中共享)。在ASP中,这也称为“应用范围”信息。
使用添加和检索信息应用程序对象(VBScript):
<%Application(“A_String”)=“字符串变量”应用(“总和”)=5*5设置应用程序(“FileSystemObject”)=服务器。CreateObject(“Scripting.FileSystemObject”)my_string=应用程序(“A_string”)'my_string现在等于“string变量”my_sum=应用程序(“总和”)'my_sum现在等于25设置fso=应用程序(“FileSystemObject”)'fso现在是FileSystemObject对象'应用程序。内容(“A_String”)==应用程序(“A_字符串”)'应用程序(键)是应用程序的快捷方式。目录(键)。%>
收藏
目录集合
已创建并添加到应用程序通过脚本命令(例如服务器。创建对象,而不是使用HTML格式<OBJECT>标记。
静态对象集合
已创建并添加到应用程序在客户端会话期间使用HTML格式<OBJECT>标记,而不是使用脚本命令。
方法
内容。删除方法(第3.0版)
这个内容。删除方法用于从目录收藏。
内容。全部删除方法(第3.0版)
这个内容。全部删除方法用于从目录收藏。
锁定方法
这个锁定方法阻止所有其他用户在应用程序对象。自从应用程序对象可以由多个用户共享锁定方法以确保多个用户无法更改财产同时(参见同步).
解锁方法
这个解锁方法允许任何用户访问应用程序对象属性以进行更改。
事件
OnEnd(结束时)事件
这个OnEnd(结束时)事件发生时应用程序退出。除非所有用户会话都结束,否则不会发生这种情况。如果Global.asa文件中存在处理程序脚本,则此事件的信号将运行该脚本。这是一个很好的时间全部删除的内容应用程序对象以释放内存。
示例OnEnd(结束时)处理程序函数。此脚本将从Application对象中删除所有信息,并释放它使用的内存。
<script language=“vbscript”runat=“server”>子应用程序_结束应用。内容。全部删除结束Sub</脚本>
OnStart(启动)事件
这个OnStart(启动)事件可以发生两次。
1) 首次启动新用户会话时。
2) 在OnEnd(结束时)事件。
如果Global.asa文件中存在处理程序脚本,则此事件的信号将运行该脚本。
例子OnStart(启动)处理程序脚本。这个脚本初始化是一个应用程序范围计数器,可用于统计自上次应用是重新启动预计起飞时间。
<script language=“vbscript”runat=“server”>子应用程序_启动应用程序(“VisitorCount”)=0结束Sub</脚本>
游戏说明
大型阵列&应用程序对象
在中存储大型阵列应用程序或会话对象是一个坏主意。大多数脚本语言的语义要求,在访问数组的任何元素之前,必须创建整个数组的临时副本。这有效地占用了存储数组的两倍内存。一般来说,这不是你想做的事情。
应用程序级组件?
你会喜欢的组件对象模型/COM公司+您刚刚编写的对象在所有用户会话中都可用吗?认为创建组件的一个全局引用会提高性能(不必在单个页面上创建和销毁对象)?在大多数情况下,在Application对象中放置组件会降低性能,而不是提高性能。为什么?
ASP维护一个工作线程池螺纹该服务请求。通常,请求由第一个可用线程处理。然而,ASP必须创建一个特殊线程来运行非敏捷1,应用程序范围的组件。这意味着对这个组件的所有调用现在都必须使用这个特殊线程,并且所有调用都是序列化的因此,对该组件的每个调用都必须等待一个唯一的线程,而不是使用第一个可用线程。随着负载增加(组件调用频率增加),这将杀死性能。
返回到ASP对象
1ASP组件可以分类为“敏捷的“和”非敏捷“组件。区别在于它们处理线程的方式同步大多数组件都属于“非敏捷”类别。
资源:
http://www.devguru.com
http://msdn.microsoft.com/asp/
所有代码都是我自己的(但它可以是你的,只需支付3笔29.95美元!)
(v3.0)表示此功能仅适用于ASP公司3.0版,随附标准IIS(IIS)5