很多的網站都有記數器,用來記錄網站的訪問量,這給網站管理員即時了解本網站的運行及訪問情況提供了很多的方便。筆者研究過很多用asp編寫的計數器程序,發現大部份都是在一個訪客訪問站點的時候就打文本文件或數據庫,讀取以前的計數值進行加1,然后再寫入文件,若網站訪問量很大,可能會對系統造成很大的負擔,那么有沒有優化的方法呢,筆者經過研究測試,答案是:有。
熟悉ASP的朋友都知道,ASP提供一個application屬性用來保存服務器的一些公共變量,我們可以用這個變量來保存記數器的信息。
思路是先設定兩個Application變量,一個Application(“TotalCount”),用來保存記數值;另一個Application(“LastwriteTime”),用來保存上次把記數值保存到文件的時間。我們可以自己定義把計數值保存到文件的間隔時間,比如1小時、1天或者一個月。在有訪客訪網站的時候,讓Application(“TotalCount”)進行加1,如果上次保存計數的時間與現在的時間差大于我們設定的保存時間間隔值,那么就把當前的計數值寫入文件保存,這樣就減少了程序的IO操作,節約了系統的負擔。
為了避免發生意外,如斷電或者服務器停止反應需待重啟等,我們可以設定保存時間間隔為2小時,這樣即使發生意外,損失也不會太大。
例程如下:
<%
Dim oFile '定義讀寫文件對象
Dim nCount '定義從文件中讀取的記數值
Dim sFilePath '定義計數器保存文件的路徑
Const iInterval=2 '定義保存時間間隔為2小時
SFilePath=Server.MapPath("Count/Count.txt") '假設計數器文件在根目錄下的Count目錄中,文件名為Count.txt
IF Application("TotalCount")=0 or Application("TotalCount")="" THEN
'如果第一次運行網站,比如重啟后,我們就需要從文件中讀取出以前的計數值
新聞熱點
疑難解答