zoukankan      html  css  js  c++  java
  • ASP入门(十五)- Global.asa

    Global.asa 文件是一个可选文件,它可包含被 ASP 应用程序中每个页面访问的对象、变量和方法的声明。所有合法的浏览器脚本都可以在 Global.asa 中使用。

    Global.asa 文件只能包含 Application 事件Session 事件、<object> 声明TypeLibrary 声明#include 指令这几种内容。

    Global.asa 文件必须放在 ASP 应用程序的根目录中,而且每一个应用程序只能有一个 Global.asa 文件。

    Global.asa 中的事件

    Global.asa 文件中应当包含 4 个 Sub 过程,并且它们的名字是固定的,这样 IIS 在处理 ASP 脚本时,就可以自动执行这些过程了,一个标准的 Global.asa 的代码结构如下:

    <script language="vbscript" runat="server">
    Sub Application_OnStart()
    'some code
    End Sub
    
    Sub Application_OnEnd()
    'some code
    End Sub
    
    Sub Session_OnStart()
    'some code
    End Sub
    
    Sub Session_OnEnd()
    'some code
    End Sub
    </script>

    首先,这里并不是以 <% %> 定界符来包含代码的,而是以 <script> 标签来包含相应的代码,否认会出现错误。

    Application_OnStart 此事件会在整个网站第一次开启时触发,此事件会法正在 Web 服务器重启或者 Global.asa 文件被编辑之后。Session_OnStart 事件会在此事件发生之后立即发生。

    Session_OnStart 事件会在每当新用户请求网站的ASP程序的第一个页面时发生。也就是IIS为用户分配 SessionID 时触发。

    Session_OnEnd 事件会在每当用户结束 Session 时发生。这与 Session.Timeout 的设定有关系,在规定的时间(默认时间为20分钟)内如果用户没有请求任何页面,用户 Session 就会结束,此时 Session_OnEnd 事件也会被触发。

    Application_OnEnd 事件会在最后一个用户结束其 Session 之后发生。典型的情况就是,Web 服务器关机或重启,或者 IIS 管理器中对站点进行关闭操作。

    限定

    Application_OnStart、Application_OnEnd、Session_OnStart、Session_OnEnd 四个事件的子例程中可使用的对象,详见下表

      Server 对象 Application 对象 Session 对象 其他任何内建对象
    Application_OnStart    
    Application_OnEnd    
    Session_OnStart
    Session_OnEnd  

    利用 Global.asa 制作在线人数计数器

    我们利用 Global.asa 文件中 Session 事件特性来实现一个在线人数的计数器,在每个用户第一次访问站点时,我们会将 Application 中保存的当前人数增加,当用户离开此站点并且 Session 超时后,我们会在 Application 中保存的当前人数减少。

    下面是 Global.asa 文件中的源代码:

    <script language="vbscript" runat="server">
    Sub Application_OnStart()
      Application("visitors") = 0
    End Sub
    
    Sub Application_OnEnd()
    End Sub
    
    Sub Session_OnStart()
      Application.Lock()
      Application("visitors") = Application("visitors") + 1
      Application.Unlock()
    End Sub
    
    Sub Session_OnEnd()
      Application.Lock()
      Application("visitors") = Application("visitors") - 1
      Application.Unlock()
    End Sub
    </script>

    我们这里主要用了 Session_OnStart 、 Session_OnEnd 和 Application_OnStart 三个事件。

    • Application_OnStart 中的代码使得网站开启时初始化 Application 中的 visitor 为 0。
    • Session_OnStart 中的代码使得使得 Application 中的 visitor 加1。
    • Session_OnEnd 中的代码使得 Application 中的 visitor 减1。

    将此 Global.asa 放置到站点的根目录下,然后你可以在你的 ASP 文件中访问到 Application  的 Visitor 的值了,如下代码:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <%
    Dim numVisitors
    numVisitors = Application.Contents("visitors")
    Session.Timeout = 1
    %>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Global.asa 统计在线人数</title>
    </head>
    <body>
    <h3>当前在线人数:<%=numVisitors%></h3>
    </body>
    </html>

    示例代码下载

    Global_Visitors.RAR

  • 相关阅读:
    如何发布自定义的UI 组件库到 npmjs.com 并且编写 UI组件说明文档
    Go 包导入备忘
    Incorrect column count: expected 1, actual 5,JdbcTemplate queryForList 出错
    SpringJdbc持久层封装,Spring jdbcTemplate封装,springJdbc泛型Dao,Spring baseDao封装
    Java最快的maven仓库地址,国内Maven地址,超快的Maven地址
    SQLyog-12.4.2版下载,SQLyog最新版下载,SQLyog官网下载,SQLyog Download
    easyui datebox定位到某一个日期, easyui datebox直接定位到具体的日期, easyui datebox MoveTo方法使用
    Echarts调整图表上下左右的间距,Echarts调整柱状图左右的间距
    Spring整合Quartz定时任务执行2次,Spring定时任务执行2次
    Linux关闭Tomcat为什么要用Kill,而不是shutdown.sh
  • 原文地址:https://www.cnblogs.com/pchmonster/p/4739063.html
Copyright © 2011-2022 走看看