/*-------------------ASP文檔參考集-----------------------*/
*-->作者:草履蟲
*-->時間:2007-4.28---2007-4.30(原來是自己編寫的手冊,現在發在這裡)
*-->聯絡:caolvchong@gmail.com
*-->文檔功能:
1.複習了ASP,加深了對ASP結構的理解和ASP的體會
2.可以用來做ASP參考,自己寫的,參考起來更方便
這是第四部分:Global.asa
/*---------------------------關於ASP組件------------------------*/
ASP組件就不敘述了,遇到重要的組件(主要是第三方的組件),如上傳組件等等,再專門
介紹
/*==============================END==================================*/
/*-----------------------Global.asa-------------------------*/
.asa是檔案尾碼名,它是Active Server Application的首字母縮寫。Global.asa檔案可以
管理在ASP應用中兩個非常苛刻的對象:Application、Session
Global.asa是一個可選檔案,程式編寫者可以在該檔案中指定事件指令碼,並聲明具有會話和
Application 領域的對象。該檔案的內容不是用來給使用者顯示的,而是用來儲存事件資訊和由
應用程式全域使用的對象。該檔案必須存放在應用程式的根目錄內。每個應用程式只能有一
個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>