asp完成在線人數
發表時間:2023-08-21 來源:明輝站整理相關軟件相關文章人氣:
[摘要]前兩天有網友問到這個問題,我這里來回答一下。從邏輯上說,這個問題很簡單。那就是來一個用戶,在線人數加一,離開一個用戶,在線人數減一。現在首先需要解決的問題是如何知道用戶的進入和增加。在asp中,用戶...
前兩天有網友問到這個問題,我這里來回答一下。
從邏輯上說,這個問題很簡單。那就是來一個用戶,在線人數加一,離開一個用戶,在線人數減一。
現在首先需要解決的問題是如何知道用戶的進入和增加。
在asp中,用戶進入訪問頁面的時候,會觸發一個事情,事件名稱是session_onstart,在離開的時候(準確地說,是在一定的時間內沒有訪問頁面數據,缺省的時間是20分鐘),也會觸發一個事件,事件的名稱是session_onend。我們可以在global.asa文件中定義這兩個事件所執行的操作。
接下來我們需要考慮的問題是,如何讓這個變量對于所有的人都是一樣的(廢話,不一樣那一定不準確)。因此,我們首先想到的就是把在線人數放在一個application變量里。
到這里,我們需要解決的問題都已經解決了,下面來看看代碼:
sub session_onstart
application.lock
application("onlineusers")=application("onlineusers")+1
application.unlock
end sub
sub session_onend
application.lock
application("onlineusers")=application("onlineusers")-1
application.unlock
end sub
在這里有一個小小的問題,那就是,如果用戶是第一個訪問者,由于在線人數變量沒有初始化,所以會出現錯誤的提示。要想解決這個問題,我們需要加上初始化該變量的代碼:
if isempty(application("onlineusers")) then
application("onlineusers")=1
end if
修改后的代碼如下:
sub session_onstart
application.lock
if isempty(application("onlineusers")) then
application("onlineusers")=1
else
application("onlineusers")=application("onlineusers")+1
end if
application.unlock
end sub
sub session_onend
application.lock
application("onlineusers")=application("onlineusers")-1
application.unlock
end sub
把上面的代碼保存為global.asa,保存在web應用程序根目錄下(必須在根目錄下),然后在頁面的合適位置中使用<%=application("onlineusers")%>就可以了。