ASP基礎(chǔ)入門(mén)第九篇(Global.asa文件的使用)
下面我來(lái)向大家介紹 Global.asa 文件的使用方法。
什么是 Global.asa 文件?它其實(shí)是一個(gè)可選文件,程序編寫(xiě)者可以在該文件中指定事件腳本,并聲明具有會(huì)話和應(yīng)用程序作用域的對(duì)象。該文件的內(nèi)容不是用來(lái)給用戶(hù)顯示的,而是用來(lái)存儲(chǔ)事件信息和由應(yīng)用程序全局使用的對(duì)象。該文件的名稱(chēng)必須是 Global.asa 且必須存放在應(yīng)用程序的根目錄中。每個(gè)應(yīng)用程序只能有一個(gè) Global.asa 文件。
在 Global.asa 文件中,如果包含的腳本沒(méi)有用 < SCRIPT> 標(biāo)記封裝,或定義的對(duì)象沒(méi)有會(huì)話或應(yīng)用程序作用域,則服務(wù)器將返回錯(cuò)誤。我們可以用任何支持腳本的語(yǔ)言編寫(xiě) Global.asa 文件中包含的腳本。如果多個(gè)事件使用同一種腳本語(yǔ)言,就可以將它們組織在一組 < SCRIPT> 標(biāo)記中。
在 Global.asa 文件中聲明的過(guò)程只能從一個(gè)或多個(gè)與 Application_OnStart、Application_OnEnd、Session_OnStart 和 Session_OnEnd 事件相關(guān)的腳本中調(diào)用。在基于 ASP 的應(yīng)用程序的 ASP 頁(yè)中,它們是不可用的。如果要在應(yīng)用程序之間共享過(guò)程,可在單獨(dú)的文件中聲明這些過(guò)程,然后使用服務(wù)器端包容 (SSI) 語(yǔ)句將該文件包含在調(diào)用該過(guò)程的 ASP 程序中。通常,包含文件的擴(kuò)展名應(yīng)為 .inc。
下面是一個(gè)很標(biāo)準(zhǔn)的Global.asa 文件:
< SCRIPT LANGUAGE="VBScript" RUNAT="Server"> 'Session_OnStart 當(dāng)客戶(hù)首次運(yùn)行 ASP 應(yīng)用程序中的任何一個(gè)頁(yè)面時(shí)運(yùn)行 'Session_OnEnd 當(dāng)一個(gè)客戶(hù)的會(huì)話超時(shí)或退出應(yīng)用程序時(shí)運(yùn)行 'Application_OnStart 當(dāng)任何客戶(hù)首次訪問(wèn)該應(yīng)用程序的首頁(yè)時(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 組件,它可以提供用于訪問(wèn)文件系統(tǒng)的方法、屬性和集合。這將在以后 ASP 的組件中進(jìn)行展開(kāi)討論。在這里,它起到了在服務(wù)器上創(chuàng)建新文件并對(duì)文件進(jìn)行寫(xiě)操作的作用。這其實(shí)是一個(gè) ASP 頁(yè)面訪問(wèn)記數(shù)器應(yīng)用程序的 Global 文件,首先當(dāng)客戶(hù)首次訪問(wèn)該應(yīng)用程序的首頁(yè)時(shí) , 過(guò)程 Application_OnStart 定義了在服務(wù)器上指定的虛擬目錄下新建一個(gè) VisitCount.txt 的文本文件,并將文件的路徑和內(nèi)容保存在應(yīng)用程序級(jí)的變量中。而當(dāng)任何一個(gè)客戶(hù)訪問(wèn) ASP 應(yīng)用程序中的任何一個(gè)頁(yè)面時(shí),過(guò)程 Session_OnStart 定義將應(yīng)用程序級(jí)的變量 visitors 的值自動(dòng)加一。這樣,每當(dāng)有客戶(hù)訪問(wèn)頁(yè)面時(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)丟失,所以通過(guò)定義過(guò)程 Application_OnEnd,在服務(wù)器關(guān)閉或重啟之前將數(shù)據(jù)寫(xiě)入事先建立的文本文件之中,這樣就能確保當(dāng)服務(wù)器再次啟動(dòng)時(shí),Application_OnStart 過(guò)程可以從 VisitCount.txt 文件中讀取以前的統(tǒng)計(jì)數(shù)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
捕捉并保存ASP運(yùn)行錯(cuò)誤的函數(shù)代碼
捕捉并保存ASP運(yùn)行錯(cuò)誤的函數(shù)代碼,需要獲取asp代碼運(yùn)行錯(cuò)誤的朋友可以參考下2012-03-03asp 根據(jù)IP地址自動(dòng)判斷轉(zhuǎn)向分站的代碼
根據(jù)IP地址自動(dòng)判斷轉(zhuǎn)向分站的代碼 這個(gè)是一個(gè)不錯(cuò)的解決之道,可以緩解服務(wù)器壓力過(guò)大等一些問(wèn)題2008-11-11用asp實(shí)現(xiàn)的數(shù)據(jù)庫(kù)中存取文件的代碼
用asp實(shí)現(xiàn)的數(shù)據(jù)庫(kù)中存取文件的代碼...2007-03-03ASP實(shí)現(xiàn)GB2312字符與區(qū)位碼的相互轉(zhuǎn)換的代碼
ASP實(shí)現(xiàn)GB2312字符與區(qū)位碼的相互轉(zhuǎn)換的代碼...2007-05-05ASP 高亮顯示不區(qū)分大小寫(xiě)的關(guān)鍵字
今日,碰到一個(gè)問(wèn)題:如何在網(wǎng)頁(yè)中高亮顯示不區(qū)分大小寫(xiě)的關(guān)鍵字2010-01-01asp 讀取通過(guò)表單發(fā)送的post數(shù)據(jù)
學(xué)習(xí)ASP,最重要的就是要掌握ASP內(nèi)置的六大對(duì)象,如果以前沒(méi)接觸過(guò),聰明的您就不要管這些概念了,知道怎么用就行了,我的觀點(diǎn)是剛開(kāi)始關(guān)鍵在于臨摹2012-12-12