NetBox 2.7 使用手册

Application 对象

可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟目录及其子目录中定义。因为多个用户可以共享 Application 对象,所以必须要有 LockUnlock 方法以确保多个用户无法同时改变某一属性。

语法

Application[.collection|method](variable)
 

集合

Contents 基本集合,使用标准内部对象 Dictionary 存放数据

属性

ApplicationID ApplicationID 属性返回当前应用的标识

方法

Lock 阻止其他用户对关键的 Application 进行操作,同一之间只允许一个用户进行操作。程序退出的时候会自动释放对于 Application 的锁
Unlock 阻止其他用户对关键的 Application 进行操作,同一之间只允许一个用户进行操作。程序退出的时候会自动释放对于 Application 的锁

注释

您可以将值存储在 Application 集合中。存储在 Application 集合中的信息在整个应用程序中有效且具有应用程序作用域。下列脚本演示两种类型的变量的存储。

<%
Application("greeting") = "Welcome to My Web World!"
Application("num") = 25
%>

每一个变量都是 Contents 集合的成员。

也可以为具有应用程序作用域的变量分配组件实例。若使用 Server.CreateObject 方法为变量分配组件实例,则该变量将成为 Application.Contents 集合的成员。

在为具有应用程序作用域的变量分配组件实例时一定要小心从事,因为某些组件不是为给定的应用程序作用域设计的。详细信息。

如果为 Contents 中的变量分配组件实例,且使用 Visual Basic® Scripting Edition 作为主脚本语言,则必须使用 Set 关键字。在下列脚本中对此进行解释。

<% Set Application("Obj1") = Server.CreateObject("MyComponent") %>

可以引用并发 Web 页上的 MyComponent 的属性和方法,具体做法是使用脚本

<% Application("Obj1").MyObjMethod %>

或展开该对象的一个本地副本并使用脚本

<% 
Set MyLocalObj1 = Application("Obj1") 
MyLocalObj1.MyObjMethod
%>

您应该清楚您给定应用程序作用域的组件所使用的线程模型。用于开发组件的线程模型将对是否将组件实例分配给 Application 集合中的变量产生很大影响。

若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。

<% Application("StoredArray")(3) = "new value" %>

这是因为 Application 对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。

我们极力建议您在将数组存储在 Application 对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Application 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。

---file1.asp---
<%
'Creating and initializing the array
dim MyArray()
Redim MyArray(5)
MyArray(0) = "hello"
MyArray(1) = "some other string"

'Storing the array in the Application object
Application.Lock
Application("StoredArray") = MyArray
Application.Unlock

Response.Redirect("file2.asp")
%>

---file2.asp---
<%
'Retrieving the array from the Application Object
'and modifying its second element
LocalArray = Application("StoredArray")
LocalArray(1) = " there"

'printing out the string "hello there"
Response.Write(LocalArray(0)&LocalArray(1))

'Re-storing the array in the Application object
'This overwrites the values in StoredArray with the new values
Application.Lock
Application("StoredArray") = LocalArray
Application.Unlock
%>

示例

下列示例使用应用程序变量 NumVisits 存储某特定页被访问的次数。调用 Lock 方法是为了保证只有当前客户才能访问和更改 NumVisits。调用 Unlock 方法之后,即可允许其他用户访问 Application 对象。

<%
Application.Lock
Application("NumVisits") = Application("NumVisits") + 1
Application.Unlock
%> 
 
This application page has been visited 
<%= Application("NumVisits") %> times!

应用于

HttpServerHost 对象
版权所有: 2003- 网络盒子