Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

ASP Application 对象详解

[复制链接]
530761333 发表于 2010-10-10 14:45:31 | 显示全部楼层 |阅读模式
使用 ASP Application 对象可以让应用程序中的所有用户之间共享信息,并且在WEB服务器运行期间持久的保存数据。
下面我们来详细了解ASP Application的集合、方法、和事件。
ASP Application 对象集合
Contents  包含所有通过脚本命令添加到应用程序中的项目。
StaticObjects  包含所有使用 HTML 的 <object> 标签追加到应用程序中的对象。
1、Contents 集合
Contents 集合包含着所有通过脚本命令添加到 Application 对象的项目总和。
要删除 Contents 集合中的项目,请使用 Remove 和 RemoveAll 方法。
语法:
Application.Contents(Key)
参数:
Key,必需,指定要获取项目的名称。
示例:
  1. 01.<%   
  2. 02.Application("strVar") = "Abo BloG"  
  3. 03.Set Application("objRs") = Server.CreateObject("ADODB.RecordSet")   
  4. 04.  
  5. 05.'遍历 Contents 集合   
  6. 06.For Each Key In Application.Contents   
  7. 07.    Response.Write(Key) & "<br>"  
  8. 08.Next  
  9. 09.  
  10. 10.For intI = 1 To Application.Contents.Count   
  11. 11.    Response.Write(intI) & "<br>"  
  12. 12.Next  
  13. 13.%>  
复制代码

2、StaticObjects 集合
StaticObjects 集合包含所有的在 Application 对象范围中使用 <object> 标记创立的对象。可以使用该集合确定某对象的指定属性的值或遍历集合及检索所有表态对象的所有属性。
语法:
Application.StaticObjects(Key)
参数:
Key,必需,指定要获取项目的名称。
示例:
  1. 01.<%   
  2. 02.'Global.asa 文件:   
  3. 03.<object runat="server" scope="application" id="Connection" progid="ADODB.Connection"></object>   
  4. 04.<object runat="server" scope="application" id="RecordSet" progid="ADODB.RecordSet"></object>   
  5. 05.  
  6. 06.'ASP 文件:   
  7. 07.'遍历 StaticObjects 集合   
  8. 08.For Each obj In Application.StaticObjects   
  9. 09.    Response.Write("<li>" & obj & "</li>")   
  10. 10.Next  
  11. 11.%>  
复制代码

ASP Application 方法
Contents.Remove  从 Contents 集合中删除一个项目。
Contents.RemoveAll()  从 Contents 集合中删除所有的项目。
Lock  防止其余的用户修改 Application 对象中的变量。
Unlock  使其他的用户可以修改 Application 对象中的变量(在被 Lock 方法锁定之后)。
1、Contents.Remove 方法
Contents.Remove 方法从 Contents 集合中删除一个项目。
语法:
Application.Contents.Remove(name|index)
参数:
name|index,必需,指定要删除项目的名称或索引号。
示例:
  1. 01.<%   
  2. 02.Application("strI") = "布落格"  
  3. 03.Application("strII") = "Abo BloG"  
  4. 04.  
  5. 05.For Each S In Application.Contents   
  6. 06.    Response.Write Application.Contents(S)   
  7. 07.Next  
  8. 08.%>  
复制代码

2、Contents.RemoveAll() 方法
Contents.RemoveAll 方法可从 Contents 集合删除所有的项目。
语法:
Application.Contents.RemoveAll()
示例:
  1. 01.<%   
  2. 02.Application("strI") = "布落格"  
  3. 03.Application("strII") = "Abo BloG"  
  4. 04.  
  5. 05.'删除所胡Application 项目   
  6. 06.Application.Contents.RemoveAll()   
  7. 07.%>  
复制代码

3、Lock 方法、Unlock 方法
Lock 方法阻止其他用户修改 Application 对象中的变量以确保同一时间只有一位用户可修改 Application 变量。
Unlock 方法使其他用户能够修改存储在 Application 对象中的变量在(它被使用 Lock 方法锁定之后),如果未显式调用该方法,Web 服务器将在 .asp 文件结束或超时后解锁 Application 对象。
语法:
Application.Lock
Application.Unlock
示例:
  1. 01.<%   
  2. 02.Application.Lock   
  3. 03.Application("Count") = Application("Count") + 1   
  4. 04.Application.Unlock   
  5. 05.  
  6. 06.Response.Write Application("Count")   
  7. 07.%>  
复制代码

ASP Application 事件
Application_OnStart  在首个新的 session 被创建之前(这时 Application 对象被首次引用),此事件会发生。
Application_OnEnd  当所有用户的 session 都结束,并且应用程序结束时,此事件发生。
Application_OnStart 事件在首次创建新的会话(即 Session_OnStart 事件)之前发生。只有 Application 和 Session 内建对象是可用。
注意:在 Application_OnStart 事件脚本中引用 Session、Request 或者 Response 对象会引发错误。
Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,只有 Application 和 Server 内建对象可用。
注意:MapPath 方法无法用于 Application_OnEnd 代码中。
语法:
<script language="vbscript" runat="server">
Sub Application_OnStart
. . .
End Sub
Sub Application_OnEnd
. . .
End Sub
</script>
示例:
Global.asa
  1. 01.<script language="vbscript" runat="server">   
  2. 02.  
  3. 03.Sub Application_OnEnd()   
  4. 04.    Application("TotalVisit") = Application("Visit")   
  5. 05.End Sub  
  6. 06.  
  7. 07.Sub Application_OnStart   
  8. 08.    Application("Visit") = 0   
  9. 09.End Sub  
  10. 10.  
  11. 11.Sub Session_OnStart   
  12. 12.    Application.Lock   
  13. 13.    Application("Visit") = Application("Visit") + 1   
  14. 14.    Application.UnLock   
  15. 15.End Sub  
  16. 16.  
  17. 17.Sub Session_OnEnd   
  18. 18.    Application.Lock   
  19. 19.    Application("Visit") = Application("Visit") - 1   
  20. 20.    Application.UnLock   
  21. 21.End Sub  
  22. 22.  
  23. 23.</script>  
复制代码

ASP页面显示当前在线人数:
  1. 01.<%   
  2. 02.Response.Write "Online:" & Application("Visit")   
  3. 03.%>
复制代码

maikongjian14a 发表于 2010-10-10 15:41:21 | 显示全部楼层
很好的东西 谢谢了
回复

使用道具 举报

la367 发表于 2010-10-12 13:50:10 | 显示全部楼层
这些对象都要好好的了解
回复

使用道具 举报

bbslym 发表于 2010-10-13 09:15:01 | 显示全部楼层
久违的代码啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 10:44 , Processed in 0.019499 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表