/*-------------------ASP文檔參考集-----------------------*/
*-->作者:草履蟲
*-->時間:2007-4.28---2007-4.30(原來是自己編寫的手冊,現在發在這裡)
*-->聯系:
[email protected] *-->文檔功能:
1.復習了ASP,加深了對ASP結構的理解和ASP的體會
2.可以用來做ASP參考,自己寫的,參考起來更方便
這是第四部分:Global.asa
/*---------------------------關於ASP組件------------------------*/
ASP組件就不敘述了,遇到重要的組件(主要是第三方的組件),如上傳組件等等,再專門
介紹
/*==============================END==================================*/
/*-----------------------Global.asa-------------------------*/
.asa是文件後綴名,它是Active Server Application的首字母縮寫。Global.asa文件可以
管理在ASP應用中兩個非常苛刻的對象:Application、Session
Global.asa是一個可選文件,程序編寫者可以在該文件中指定事件腳本,並聲明具有會話和
應用程序作用域的對象。該文件的內容不是用來給用戶顯示的,而是用來存儲事件信息和由
應用程序全局使用的對象。該文件必須存放在應用程序的根目錄內。每個應用程序只能有一
個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的標准文件格式如下:
<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>
兩個關於Global.asa經典的例子:
1.強制進入首頁,就是如果第一次訪問網站,強制定位到首頁的辦法:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Session_OnStart '只要是用戶第一次登錄本站,則會跳轉到首頁
response.redirect("首頁地址")
End Sub
</SCRIPT>
2.網站在線人數的統計:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
' 當服務器開啟時,設置用戶計數器為0
Application("ActiveUsers") = 0
End Sub
Sub Session_OnStart
'設置Session對象的有效時間為20分鐘(也可以更長,但是越長對服務器的
'資源占用越多,因為服務器不接受少於20分鐘的有效時間,所以設置少於20
'分鐘的有效時間是無效的)
Session.Timeout = 20
' 當開始一個Session時用戶計數器加1
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
' 當結束一個Session時用戶計數器減1
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub
</SCRIPT>