繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> ASP编程入门进阶(十):Global.asa文件

ASP编程入门进阶(十):Global.asa文件

2006-05-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:我们已经知道Application和Session对象的OnStart、OnEnd事件的脚本,都必须是在 Global.asa 文件中声明的。那究竟Global.asa是什么样的一个文件?它的作用有何?又该如何运用呢?且听我慢慢道来。   首先.asa是...

我们已经知道Application和Session对象的OnStart、OnEnd事件的脚本,都必须是在 Global.asa 文件中声明的。那究竟Global.asa是什么样的一个文件?它的作用有何?又该如何运用呢?且听我慢慢道来。

  首先.asa是文件后缀名,它是Active Server Application的首字母缩写。Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application、Session。

  它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一个Global.asa文件。

  关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。

  Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用:

  1,当Application_OnStart或Application_OnEnd事件被触发。

  2,当Session_OnStart或Session_OnEnd事件被触发。

  3,当引用一个在Global.asa文件里被实例化的对象(Object)。

  Global.asa的标准文件格式如下:

  因为一旦有用户访问服务器而不管用户是否登录,都会产生OnStart事件,而现在需要的只是登录用户的在线,所以不能在OnStart事件里使Applicaiton("online"加1。

  又因为不管是否是登录用户的会话结束都会产生OnEnd事件(假如有访客访问了服务器但并不登录,他的会话结束后也会产生OnEnd事件),所以在Session_OnEnd事件里用了句if语句来判断是否为已登录用户的OnEnd事件,如果是才将在线人数减1。

  并且值得注意的是:session.contents("pass"的使用,因为在OnEnd事件里禁止使用Session对象,但是可以用Session对象的集合来调用session变量。也就是说不能直接写session("pass",而是需要写session.contents("pass"。

  6,login.ASP

当前注册会员人。

退出

  只是简单地检测用名是cnbruce,密码是cnrose的时候,生成一个session("pass"=true,就是放在Global.asa中判断的。

  五,继续发挥想象。

  想想,再想想。仅仅统计有多少人在线是不够的,还要判断用户的在线状态。

  可以想象办法基本,当用户登录的时候,在login.ASP里将online设为1(如果有数据库则上传),但用户离线时将online设为0,要完善它,就要修改一下Session_OnEnd事件,在该事件里将online设为0(同样将为0的值上传)……

  当然,Global.asa远远不止这些。不过我们现在先不着急全部掌握,当我们接触到数据库的时候再返回过来看,继续研究该文件,相信到那时一定又会感悟到很多。所以,还是先把上面的这些吃透吧:)

责任编辑:admin
相关文章