Application事件
和Session事件一样,Application也有两个时间Application_OnStart和Application_OnEnd,第一个事件在Application开始时触发,后者在结束时触发。
什么时候application开始呢?不,不是网站一开始,是第一个请求Application的页面被调用。
一个Application的OnStart事件肯定是在Session_Start事件之前的。不过,Application不会象Session那样在一个新用户请求后就触发,Application只触发一次,就是第一个用户的第一次请求。
Application_OnEnd事件只有在服务终止或者该application卸载时才会触发,例如,你在Internet Service Manager中关闭了网络服务。,那么Application_OnEnd事件就会触发,如果你针对单独目的使用application,这个事件可以通过application在利用Unload按钮卸载时进行触发。一个Application_OnEnd事件肯定发生在Session_OnEnd事件之后。
Application_OnStart和Application_OnEnd事件都是触发一个也是唯一一个脚本程序。而且这些事件都在一个文件中,那就是在Session事件中提到的Global.asa文件,下面为了加深了解,再次给出其结构:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnStart
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnEnd
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnStart
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnEnd
END SUB
</SCRIPT>
有关Session的事件我们认为你已经在第16章学的很不错了,那么其余的两个就是我们现在要介绍的Application事件。
这里面和Session事件一样限制的是,你不能使用HTML标志,不能进行任何输出,不能将语句写出子程序或者写成其他方式。因此,编写时要特别小心。
Application_Onstart事件一般是用来初始化这个Application的变量,例如下面用Application_Onstart事件和Session_OnStart事件来进行访问人数统计:
<Script Language=VBScript RUNAT=Server>
SUB Application_OnStart
Application(
“TotalUsers”)=0END SUB
</SCRIPT>
<SCRIPT Language=VBScript RUNAT=Server>
SUB Session_OnStart
Application.Lock
Application(
“TotalUsers”)=Application(“TotalUsers”)+1Application.Unclock
END SUB
</SCRIPT>
在Application_OnStart事件中只有一个语句将TotalUsers变量置0,只有网站开始后这个脚本才能执行。
Session_OnStart事件在每一个用户到达后都都将TotalUsers加1,同时使用Lock方法防止冲突。
这样,在你希望显示访问人数的页面上,加入下面脚本:
<%=Application(
“TotalUsers”) %>