可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟目录及其子目录中定义。因为多个用户可以共享 Application 对象,所以必须要有 Lock 和 Unlock 方法以确保多个用户无法同时改变某一属性。
语法
以下为引用的内容: Application.method |
Application Contents 集合
Contents 是由所有通过脚本命令添加到应用程序的项目组成的集合。可以使用 Contents 集合获取给定的应用程序作用域的项目的列表或指定一个特殊项目为操作对象。
语法
以下为引用的内容: Application.Contents(Key) |
参数
Key
指定要获取的项目的名称。
注释
Application.Contents 集合包含了在应用程序一级未使用 <OBJECT> 标记声明的项目。其中包括用 Server.CreateObject 创建的对象和通过 Application 声明建立数值变量。例如,在下面的脚本中, MyVar 和 MyObj 将成为 Application.Contents 集合的成员:
以下为引用的内容: <% Application("MyVar") = "Hello" Set Application("MyObj") = Server.CreateObject("MyComponent") %> |
Application.Contents 集合支持 For...Each 和 For...Next 循环。下列两个脚本说明遍历 Application.Contents 集合的每种方法。
以下为引用的内容: <% For Each Key in Application.Contents Response.Write ("Key") Next Key %> <% For i = 1 to Application.Contents.Count Response.Write ("Key") Next Key %> |
Application StaticObjects 集合
StaticObjects 集合包含所有的在 Application 对象范围中使用<OBJECT> 标记创立的对象 。您可以使用该集合确定某对象的指定属性的值或遍历集合及检索所有静态对象的所有属性。
语法
Application.StaticObjects(Key)
参数
Key
指定要检索的项目的值。
注释
使用循环控制结构可以遍历 StaticObjects 集合中的关键字。请看下面的示例。
以下为引用的内容: <% Dim ObjProp For Each ObjProp in Application.StaticObjects |
Lock
Lock 方法阻止其他客户修改存储在 Application 对象中的变量,以确保在同一时刻仅有一个客户可修改和存取 Application 变量。如果用户没有明确调用 Unlock 方法,则服务器将在 .asp 文件结束或超时后即解除对 Application 对象的锁定。
语法
Application.Lock
示例
以下为引用的内容: <% Application.Lock Application("NumVisits") = Application("NumVisits") + 1 Application.Unlock %> This application page has been visited |
在前面的示例中,Lock 方法保护变量 NumVisits 在同一时刻不被多个客户所访问。如果应用程序未被锁定,则两个客户就可以同时增加变量 NumVisits 的值。
Unlock
Unlock 方法使其他客户端可以在使用 Lock 方法锁住 Application 对象后,修改存储在该对象中的变量。如果未显式调用该方法,Web 服务器将在 .asp 文件结束或超时后解锁 Application 对象。
语法
以下为引用的内容: Application.Unlock |
示例
以下为引用的内容: <% Application.Lock Application("NumVisits") = Application("NumVisits") + 1 Application.Unlock %> This application page has been visited |
上述例子中,Unlock 方法解除对象的锁定,使得下一个客户端能够增加 NumVisits。
Application_OnEnd
Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,只有 Application 和 Server 内建对象可用。
语法
以下为引用的内容: <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Application_OnEnd. . . End Sub </SCRIPT> |
参数
ScriptLanguage
指定用于编写事件脚本的脚本编写语言。可以是任何一种支持脚本的语言,例如 VBScript 或 JScript。如果有多个事件使用同一种脚本编写语言,就可以将它们组织在一组 <SCRIPT> 标记下。
注释
不能在 Application_OnEnd 脚本中调用 MapPath 方法。
Application_OnStart
Application_OnStart 事件在首次创建新的会话(即 Session_OnStart 事件)之前发生。只有 Application 和 Server 内建对象是可用的。在 Application_OnStart 事件脚本中引用 Session、Request 或 Response 对象将导致错误。
语法
以下为引用的内容: <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Application_OnStart. . . End Sub </SCRIPT> |
参数
ScriptLanguage
指定用于编写事件脚本的脚本语言。它可以是任何支持脚本编写的语言,例如 VB Script 或 JScript。如果多个事件使用同一种脚本语言,就可以将它们组织在一个 <SCRIPT> 标记下。