訪問
用ASP技術得到首頁被訪問次數的三種方法
華中理工大學自動控制工程系 周茜 田忠和
ASP 是Microsoft Active Server Pages 的縮寫,即動態伺服器首頁。
它是伺服器端指令碼編寫環境,在Web伺服器上解釋指令碼,可以組合HTML頁、指令碼命令和ActiveX組件來建立動態、互動式、高效率的
Web 頁和基於 Web 的功能強大的伺服器應用程式。ASP 可以在Microsoft 的任何 Web伺服器上發布各種動態資料,而且ASP應用程式很容易開發和修改。
ASP技術之所以容易,很重要的原因是 ASP 技術充分利用各種功能強大的內嵌對象和ActiveX組件來執行任務。ActiveX組件是包含在動態連結程式庫(.dll)或可執行檔(.exe)中的可執行某項或一組任務的代碼。因為組件可以執行公用任務,所以不必自己去建立執行這些任務的代碼,可以直接利用組件作為指令碼和基於 Web 應用程式的基本構造塊。只要知道如何訪問和控制組件所提供的對象,即使是編寫指令碼的新手,也可以在不瞭解組件運作方式的情況下編寫指令碼。
要使用組件提供的對象,首先要建立對象的執行個體並將這個新的執行個體分配變數名。使用 ASP 的 Server.CreateObject 方法可以建立對象的執行個體。然後,使用指令碼語言的變數分配指令為對象執行個體命名。建立對象執行個體時,必須提供執行個體的註冊名稱(PROGID)。
對於一個 Web 網站,我們通常需要記錄其被訪問的次數。本文針對這個問題,提出三種方法供參考。
<一>利用Page Counter 組件
Page Counter 組件可以建立 PageCounter 對象,以記錄和顯示 Web 頁被開啟的次數。每隔一定的時間,此對象將訪問次數寫入文字檔以便資料不會在伺服器關機時丟失。Page Counter 組件使用一個內部 Central Management 對象來記錄應用程式中的每一頁被開啟的次數。當使用 Server.CreateObject 方法在一頁上建立 PageCounter 對象的執行個體時,此對象從 Central Management 對象中擷取指定Web頁的當前訪問次數後,就可以使用此對象已有的方法來操作了。
文法:<% Set oVar = Server.CreateObject("MSWC.PageCounter") %>
參數:oVar 指定通過調用 Server.CreateObject 建立的 PageCounter 對象
的名稱。
方法
Hits 顯示指定的 URL 被開啟的次數。
PageHit 增加訪問次數。
Reset 將指定的頁的訪問次數設定為 0。
注意:PageCounter 對象不是內嵌對象,所以必須進行註冊。當此對象被編譯或註冊時,頁計數器向註冊表添加 MSWC.PageCounter 鍵。該鍵被添加到 HKEY_CLASSES_ROOT 下且包括下列命名值。
2.File_Location 字串,
指定記錄訪問次數的檔案的路徑名和檔案名稱。預設的檔案名稱為 hitcnt.cnt。此檔案存放在 Windows 目錄下。
2.Save_Count DWORD 型,
指明在訪問次數被儲存到 Hit Count Data 檔案前的訪問次數。注意,這是訪問的總數而不是每一頁的訪問次數。預設值為 25。
下例使用 PageCounter 對象跟蹤訪問者的個數並發送特定的訊息。
<% Set MyPageCounter = Server.CreateObject("MSWC.PageCounter")
HitMe = MyPageCounter.Hits
%>
您是第<%= HitMe %>位訪問者。
<二>利用 File Access 組件
因為 Page Counter 組件並沒有和IIS 一起安裝,必須另行安裝方可使用。若沒有安裝 Page Counter 組件,則可以採用File Access 組件。 File Access 組件可用來訪問電腦檔案系統的方法和屬性。使用者可以使用 File Access 組件建立 FileSystemObject 對象,該對象提供用於訪問檔案系統的方法、屬性和集合。
以下的執行個體說明了如何記錄被訪問的次數。
<% ‘(1)
Do While Application("bar") = 1
Application.Lock
Application("bar") = 0
Application.Unlock
%>
<% ‘(2)
Set fs = CreateObject("Scripting.FileSystemObject")
Set fr = fs.OpenTextFile("visitors.txt", ForReading,TristateFalse)
'表示 以唯讀模式、ASCII 格式開啟檔案 visitors.txt ,返回一個
'TextStream 對象 fr,visitors.txt儲存的是被訪問的次數。
visitors = fr.Read(10)
fr.Close
count = CLng(visitors)
count = count + 1 '將被訪問的次數加 1。
visitors = CStr(count)
Set fw = fs.OpenTextFile("visitors.txt", 2,TristateFalse)
fw.Write(visitors) '將新的訪問次數寫人visitors.txt儲存
fw.Close
%>
<% Application.Lock &nbs