下面我來向大家介紹 Global.asa 文件的使用方法。
什么是 Global.asa 文件?它其實(shí)是一個(gè)可選文件,程序編寫者可以在該文件中指定事件腳本,并聲明具有會(huì)話和應(yīng)用程序作用域的對(duì)象。該文件的內(nèi)容不是用來給用戶顯示的,而是用來存儲(chǔ)事件信息和由應(yīng)用程序全局使用的對(duì)象。該文件的名稱必須是 Global.asa 且必須存放在應(yīng)用程序的根目錄中。每個(gè)應(yīng)用程序只能有一個(gè) Global.asa 文件。
在 Global.asa 文件中,如果包含的腳本沒有用 SCRIPT> 標(biāo)記封裝,或定義的對(duì)象沒有會(huì)話或應(yīng)用程序作用域,則服務(wù)器將返回錯(cuò)誤。我們可以用任何支持腳本的語言編寫 Global.asa 文件中包含的腳本。如果多個(gè)事件使用同一種腳本語言,就可以將它們組織在一組 SCRIPT> 標(biāo)記中。
在 Global.asa 文件中聲明的過程只能從一個(gè)或多個(gè)與 Application_OnStart、Application_OnEnd、Session_OnStart 和 Session_OnEnd 事件相關(guān)的腳本中調(diào)用。在基于 ASP 的應(yīng)用程序的 ASP 頁中,它們是不可用的。如果要在應(yīng)用程序之間共享過程,可在單獨(dú)的文件中聲明這些過程,然后使用服務(wù)器端包容 (SSI) 語句將該文件包含在調(diào)用該過程的 ASP 程序中。通常,包含文件的擴(kuò)展名應(yīng)為 .inc。
下面是一個(gè)很標(biāo)準(zhǔn)的Global.asa 文件:
SCRIPT LANGUAGE="VBScript" RUNAT="Server">
'Session_OnStart 當(dāng)客戶首次運(yùn)行 ASP 應(yīng)用程序中的任何一個(gè)頁面時(shí)運(yùn)行
'Session_OnEnd 當(dāng)一個(gè)客戶的會(huì)話超時(shí)或退出應(yīng)用程序時(shí)運(yùn)行
'Application_OnStart 當(dāng)任何客戶首次訪問該應(yīng)用程序的首頁時(shí)運(yùn)行
'Application_OnEnd 當(dāng)該站點(diǎn)的 WEB 服務(wù)器關(guān)閉時(shí)運(yùn)行
/SCRIPT>
SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
VisitorCountFilename = Server.MapPath ("/ex2") + "\VisitCount.txt"
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileObject.OpenTextFile (VisitorCountFilename, 1, FALSE, FALSE)
Application("visitors") = Out.ReadLine
Application("VisitorCountFilename") = VisitorCountFilename
End Sub
'=========================================================
SUB Application_OnEnd
Set FileOutObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out= FileOutObject.CreateTextFile (Application("VisitorCountFilename"), TRUE,FALSE)
Out.WriteLine(application("visitors"))
End Sub
'=========================================================Sub Session_OnStart
Session.Timeout = 5
Application("visitors") = Application("visitors") + 1
Session("ID")=Session.SessionID
End Sub
/SCRIPT>
在這個(gè) Global.asa 程序中,涉及到了 ASP 的 File Access 組件,它可以提供用于訪問文件系統(tǒng)的方法、屬性和集合。這將在以后 ASP 的組件中進(jìn)行展開討論。在這里,它起到了在服務(wù)器上創(chuàng)建新文件并對(duì)文件進(jìn)行寫操作的作用。這其實(shí)是一個(gè) ASP 頁面訪問記數(shù)器應(yīng)用程序的 Global 文件,首先當(dāng)客戶首次訪問該應(yīng)用程序的首頁時(shí) , 過程 Application_OnStart 定義了在服務(wù)器上指定的虛擬目錄下新建一個(gè) VisitCount.txt 的文本文件,并將文件的路徑和內(nèi)容保存在應(yīng)用程序級(jí)的變量中。而當(dāng)任何一個(gè)客戶訪問 ASP 應(yīng)用程序中的任何一個(gè)頁面時(shí),過程 Session_OnStart 定義將應(yīng)用程序級(jí)的變量 visitors 的值自動(dòng)加一。這樣,每當(dāng)有客戶訪問頁面時(shí),變量 visitors 都將自動(dòng)加一,以起到統(tǒng)計(jì)點(diǎn)擊率的作用。由于變量 visitors 的值是存儲(chǔ)在系統(tǒng)內(nèi)存之中,所以如果服務(wù)器關(guān)閉或重新啟動(dòng),存儲(chǔ)在變量中的數(shù)據(jù)將自動(dòng)丟失,所以通過定義過程 Application_OnEnd,在服務(wù)器關(guān)閉或重啟之前將數(shù)據(jù)寫入事先建立的文本文件之中,這樣就能確保當(dāng)服務(wù)器再次啟動(dòng)時(shí),Application_OnStart 過程可以從 VisitCount.txt 文件中讀取以前的統(tǒng)計(jì)數(shù)。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
您可能感興趣的文章:- ASP編程入門進(jìn)階(十):Global.asa文件
- ASP的Global.asa使用說明
- ASP.NET Global.asax應(yīng)用程序文件簡介
- ASP.net全局程序文件Global.asax用法分析
- ASP的Global.asa文件技巧用法