明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

頁面在線人數(shù)統(tǒng)計的做法

[摘要]在瀏覽網(wǎng)頁的時侯,常?梢钥匆娨恍爱(dāng)前網(wǎng)站上的人數(shù)是XXX人”的在線人數(shù)同計。如何用ASP來做一個呢?首先,分析一下它的做法,一般來說,這些線上人數(shù)統(tǒng)計都是指一個時段內(nèi)的訪客人數(shù)統(tǒng)計。比如(5分鐘內(nèi),10分鐘內(nèi))而這個時間的長短,是由設(shè)計者設(shè)定的。   在這個時段內(nèi)同計各個不同IP的訪客總數(shù),就...

  在瀏覽網(wǎng)頁的時侯,常?梢钥匆娨恍爱(dāng)前網(wǎng)站上的人數(shù)是XXX人”的在線人數(shù)同計。如何用ASP來做一個呢?首先,分析一下它的做法,一般來說,這些線上人數(shù)統(tǒng)計都是指一個時段內(nèi)的訪客人數(shù)統(tǒng)計。比如(5分鐘內(nèi),10分鐘內(nèi))而這個時間的長短,是由設(shè)計者設(shè)定的。

  在這個時段內(nèi)同計各個不同IP的訪客總數(shù),就可以得出當(dāng)前的線上人數(shù)了,但這里有一個精確問題需要解決,至于用什么辦法來精確地統(tǒng)計,那就是各人不同的做法了,比如可以用自動提交的頁面,隔一段時間讀。茫希希耍桑牛拥鹊龋冢粒樱兄,有一個更好的技巧,就是使用session對象來統(tǒng)計,這里介紹一下gobal.asa這個文件,這是一個很重要的一個文件,請看看它的結(jié)構(gòu)。

$#@60;SCRIPT LANGUAGE="VBScript" RUNAT="Server"$#@62;

Sub Session_OnStart

End Sub

Sub Session_OnEnd

End Sub

sub Application_OnStard

End Sub

sub Application_OnEnd

End Sub$#@60;/SCRIPT$#@62;

  當(dāng)有一個會話發(fā)生時(用戶瀏覽網(wǎng)頁,向Web服務(wù)器發(fā)出請求)那么,如果自服務(wù)器啟動后第一個用戶的話,就會同時發(fā)生Application_OnStard和Session_OnStart這兩個事件,之后,再有別的用戶發(fā)出請求的話,就只發(fā)生Session_OnStart這個事件,而session的生存期是多長,是可以設(shè)定的,Session.timeout=X(分鐘)

  好了,有了這個很好用的方法,我們就能準(zhǔn)確地統(tǒng)計出在線人數(shù)了,而人數(shù)總計是用一個application變量來保存,當(dāng)在第一個會話開始時,在Application_OnStard事件中放置一條清空計數(shù)器的語句application("online")=0,然后,在Session_OnStart事件中,放置一條增加在線人數(shù)的語句application("online")=application("online")+1,而在Session_OnEnd事件相應(yīng)地放一條減少在線人數(shù)的語句,令計數(shù)值減一。

  這樣,這個文件就改為如下

$#@60;SCRIPT LANGUAGE="VBScript" RUNAT="Server"$#@62;

Sub Session_OnStart

application("online")=application("online")+1

End Sub

Sub Session_OnEnd

application("online")=application("online")-1

End Sub

sub Application_OnStard

application("online")=0

End Sub

sub Application_OnEnd

application("online")=0

End Sub$#@60;/SCRIPT$#@62 p>

  接下來編一個顯示圖形數(shù)字的程序,把在線人數(shù)顯示在指定的頁面上。這樣就能得出在人數(shù)了

*online.asp

$#@60;% @language="vbscript" %$#@62;
$#@60;%
tmp=application("online")
tmp=Cstr(tmp)
dim disp(20)
dim images(20)
dbbits=len(tmp)
for I= 1 to dbbits
disp(I)=left(right(tmp,I),I-(I-1))
next

for I=dbbits to 1 step -1
images(I)="$#@60;img src="&"http://xxxx.com.cn/pic"&"/"&disp(I)&".gif$#@62;"

response.write "document.write("&images(I)&");"

next



%$#@62;

  上面的程序很簡單,這里不作分析了,請大家自己閱讀一下。在調(diào)用在線統(tǒng)計的頁面上用一句script語句引用online.asp文件,以顯示圖形統(tǒng)計器。

$#@60;script language="JavaScript/" target="_blank">JavaScript" src="http://xxxx.com.cn/online.asp"$#@62;$#@60;/script$#@62;

  現(xiàn)在可以了,記住要點,你必須把gobal.asa放在正確的web應(yīng)用程序根目錄上,而最好單獨為這個統(tǒng)計新建一個web應(yīng)用程序,不要與其它別的程序混亂了,不然得出的數(shù)據(jù)是不準(zhǔn)確的,而把這個程序修改為多用戶的在線統(tǒng)計也很簡單。這樣就可以提供在線統(tǒng)計服務(wù)了,如何實現(xiàn)請又大家去思考一下吧....