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