学习笔记-ASP第一步-内部对象和常见组件3-- Global.asa文件 及 ASP开发规范

7. 特殊的ASP文件 —— Global.asa

  Application 和 Session 就有事件Start 和End (前面未讲),分别在应用程序的初始运行和终结以及用户会话的初始运行和终结时触发。

  在IIS中规定了,你需要再站点的根目录下创建一个名为global.asa的文件,并在这个文件中来创建Application对象和Session对象的时间。

  

  7.1 Global.asa 文件简介

    Global.asa文件中应当包含4个Sub过程,并且它们的名字是固定的(IIS处理ASP脚本可以自动处理)。

    标准的global.asa文件:

    <script language="vbscript" runat="server">

      Sub Application_onStart()

      End Sub

      

      Sub Application_onEnd()

      End Sub

 

      Sub Session_onStart()

      End Sub

 

      Sub Session_onEnd()

      End Sub

    </script>

 

    注意:

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

      ② 这里Application_onStart()过程在整个网站被第一次开启时触发(站点启动,有用户访问站点文件,此时Application_onStart()过程即被触发,

      而且先执行完毕这个过程,而后处理用户的请求)。

      ③ Application_onEnd()过程在站点呗关闭时触发。这个关闭可能是管理员在IIS管理器中队站点进行关闭操作,也可能是服务器的正常关机或重启。

      ④ Session_onStart()过程在每个用户第一次访问网站时触发(在IIS为用户分配SessionID时触发)。

      ⑤ Session_onEnd()过程在每个用户的Session过期时触发,这与Session.Timeout的设定有关。

 

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

    <script language="vbscript" runat="server">

      Sub Application_onStart()

      End Sub

      

      Sub Application_onEnd()

      End Sub

 

      Sub Session_onStart()

        If Application("onlinePeople") = "" Then

          Application.Lock()

          Application("onlinePeople") = 1

          Application.UnLock()

        Else

          Application.Lock()

          Application("onlinePeople") = Application("onlinePeople") + 1

          Application.UnLock()

        End If

      End Sub

 

      Sub Session_onEnd()

        Application.Lock()

        If Application("onlinePeople") >= 1 Then

          Application("onlinePeople") = Application("onlinePeople") - 1

        End If

        Application.UnLock()

      End Sub

    </script>

 

8. ASP开发的规范浅谈

  规范包含:站点文件存放设计、变量名方式、编码风格等。

 

  8.1 文件存放的设计:

--------------------------------------------------------------------------------------------------------

     站点

     |-- css(存放样式表文件)

     |-- database(存放数据库文件)  -- sqlserver(存放SQL Server使用的穿件数据库的脚本)

     |-- images(存放图片文件)

     |-- include(存放ASP要引入的文件)-- lib(存放asp类文件) 

     |-- js(存放javascript脚本文件)   -- lib (存放javascript框架类库)

--------------------------------------------------------------------------------------------------------

     |-- _backup (用来存储项目各个版本的备份。)

     |-- _documents (用来存储项目的开发文档、使用说明、更新日志等。)

     |-- _db (用来存放项目数据库定义说明。)

     |-- _templates (用来存储不包含ASP代码的网站模板或者模板效果图。)

--------------------------------------------------------------------------------------------------------

 

  8.2 编程风格的规范

    ① 尽量使ASP代码和页面本身的HTML代码分开(尽量使得HTML代码中不存在大块的ASP代码,尽量将数据存在变量中,在HTML中以<%=变量%>的方  

    式调用)

    ② 尽量将ASP代码都写在HTML代码前(便于阅读和修改)。

    ③ 在页面顶端加入预处理指令<%@Language="VBScript" CodePage="936"%>来显式的指定当前页面所使用的脚本语言是VBScript,

    页面编码为936(简体中文)。(这样即使服务器的默认设置有变动,程序仍可正常运行)

    ④ 在页面顶端加入强制声明的指令<%Option Explicit%>

    ⑤ 使用循环、判断等语句要使用tab键缩进,若结构比较复杂,则在其开始时以注释方式加以说明。

    ⑥ 函数的编写需要对函数进行注释,在函数开始时说明函数的目的以及输入输出参数的说明。

     例如:

      ' 函数作用:截取指定长度的字符串,中文算作两个字符

      ' 函数参数:n,longstr

      ' 参数作用:n,要截取的长度;longstr,要截取的字符串。

      ' 输出:截取后的字符串

      Function CutLongStr(strInput,lLength)

        Dim str1

        Dim i,j,k

        j = Len(strInput)

        k = 0

        For i=1 To j

          str1 = Mid(strInput,i,1)

          If Asc(str1) > 0 Then

            k = k + 1

          Else

            k = k + 2

          End If

          If k > lLength Then

            CutLongStr = Left(strInput,i) & "..."

            Exit For

          Else

            CutLongStr = strInput

          End If

        Next

      End Function

posted @ 2014-06-18 10:44  被盗的小偷  阅读(126)  评论(0)    收藏  举报