網頁線上人數統計的做法

來源:互聯網
上載者:User
   在瀏覽網頁的時侯,常常可以看見一些“當前網站上的人數是XXX人”的線上人數同計。如何用ASP來做一個呢?首先,分析一下它的做法,一般來說,這些線上人數統計都是指一個時段內的訪客人數統計。比如(5分鐘內,10分鐘內)而這個時間的長短,是由設計者設定的。
  在這個時段內同計各個不同IP的訪客總數,就可以得出當前的線上人數了,但這裡有一個精確問題需要解決,至於用什麼辦法來精確地統計,那就是各人不同的做法了,比如可以用自動認可的頁面,隔一段時間讀取COOKIES等等,而在ASP中,有一個更好的技巧,就是使用session對象來統計,這裡介紹一下gobal.asa這個檔案,這是一個很重要的一個檔案,請看看它的結構。
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Session_OnStart
End Sub
Sub Session_OnEnd
End Sub
sub Application_OnStard
End Sub
sub Application_OnEnd
End Sub
</SCRIPT>

  當有一個會話發生時(使用者瀏覽網頁,向Web伺服器發出請求)那麼,如果自伺服器啟動後第一個使用者的話,就會同時發生Application_OnStard和Session_OnStart這兩個事件,之後,再有別的使用者發出請求的話,就只發生Session_OnStart這個事件,而session的生存期是多長,是可以設定的,Session.timeout=X(分鐘)
  好了,有了這個很好用的方法,我們就能準確地統計出線上人數了,而人數總計是用一個application變數來儲存,當在第一個會話開始時,在Application_OnStard事件中放置一條清空計數器的語句application("online")=0,然後,在Session_OnStart事件中,放置一條增加線上人數的語句
application("online")=application("online")+1,而在Session_OnEnd事件相應地放一條減少線上人數的語句,令計數值減一。
  這樣,這個檔案就改為如下
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

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
</SCRIPT>

  接下來編一個顯示圖形數位程式,把線上人數顯示在指定的頁面上。這樣就能得出在人數了
*online.asp
<% @language="vbscript" %>
<%
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)="<img src="&"http://xxxx.com.cn/pic"&"/"&disp(i)&".gif>"

response.write "document.write('"&images(i)&"');"

next

%>

  上面的程式很簡單,這裡不作分析了,請大家自己閱讀一下。在調用線上統計的頁面上用一句script語句引用online.asp檔案,以顯示圖形統計器。
<script language="javascript" src="http://xxxx.com.cn/online.asp"></script>
  現在可以了,記住要點,你必須把gobal.asa放在正確的web應用程式根目錄上,而最好單獨為這個統計建立一個web應用程式,不要與其它別的程式混亂了,不然得出的資料是不準確的,而把這個程式修改為多使用者的線上統計也很簡單。這樣就可以提供線上統計服務了,如何?請又大家去思考一下吧.... 
 



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。