它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一个Global.asa文件。
关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。
Global.asa 它可包含可被纯闹 ASP 应用程序中每个页面访问的对象、变量以及方法的声明。所有合法的浏览器脚本都能在 Global.asa 中使用。 Application 事件
Session 事件
<object> 声明
TypeLibrary 声明
#include 指令 Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用:
1,当Application_OnStart或Application_OnEnd事件被触发。
2,当Session_OnStart或Session_OnEnd事件被触发。
3,当引用一个在Global.asa文件里被实蠢则例化的对象(Object)。 如下:带裤棚
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
'Application_OnStart 当任何客户首次访问该应用程序的首页时运行
End Sub
Sub Session_OnStart
'Session_OnStart 当客户首次运行 ASP应用程序中的任何一个页面时运行
End Sub
Sub Session_OnEnd
'Session_OnEnd 当一个客户的会话超时或退出应用程序时运行
End Sub
Sub Application_OnEnd
'Application_OnEnd 当该站点的 WEB 服务器关闭时运行
End Sub
</SCRIPT>
一、Session_onStart
先看一个控制用户进入页面的代码:
1,Global.asa(放在被调试的虚拟目录的根目录下面)
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart '只要是用户第一次登录本站,则会跳转到首页
response.redirect(index.asp)
End Sub
</SCRIPT>
然后调试当前虚拟目录下的任何文件,你会发现所有页面都跳转向index.asp
通过此“强制进入某页”的例子,可以想象当首页需要被关注的时候是非常有必要的。
下面就以一个“在线人数”的例子来继续观察Session_OnStart和Session_OnEnd事件
二、Session_onEnd
2,Global.asa(放在被调试的虚拟目录的根目录下面)
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_onStart '初始值为0
Application(OnLine) = 0
End Sub
Sub Session_onStart '一个用户访问进行记数加1
Application.Lock
Application(OnLine) = Application(OnLine) + 1
Application.Unlock
End Sub
Sub Session_OnEnd '一个用户进程的结束,记数减1 (P.S.如果没有该事件程序,则执行的就是页面访问程序了。)
Application.Lock
Application(OnLine) = Application(OnLine) - 1
Application.Unlock
End Sub
</SCRIPT>
3,online.asp
<%
if request.querystring(logout)=true then
session.Abandon()
response.end
end if
%>
当前共有<%=Application(OnLine)%>在线
退出
你发现在该页中只有一个Application(OnLine),而且还是被显示引用的。那么其值来自何方?这正是Global.asa文件的关键所在。
你可以在本机依次打开个窗口,进行关闭窗口