[英]How to detect when a user is viewing a webpage using javascript
我有一個網頁,我想顯示打開該頁面的用戶。 (我在服務器端使用node.js)
我目前的嘗試:
在服務器端,有一個計數器,用於計算他向該網頁提交GET請求的時間。 因此,如果他多次打開該頁面,則counter++
每次用戶離開網頁時,都會使用socket.io將websocket發送到服務器。
window.onbeforeunload = function() {
socket.emit('ClosePage');
}
然后在服務器端,當它接收到這個插座,1,又名降低他的櫃台counter--
因此,使用此邏輯,可以檢測用戶何時打開了網頁以及何時真正關閉了該網頁。
但是 ,當用戶瘋狂刷新頁面時會出現問題,因為窗口尚未卸載,服務器只會連續增加計數器而不會減少計數器。
有誰知道如何修復這樣的東西? 還是沒有人知道大多數論壇在顯示正在閱讀帖子的用戶或陌生人時使用什么算法?
非常感謝!
如果存在cookie,則可以刪除cookie而不增加計數。 或者您可以阻止IP,但這可能會打斷一些真正的觀點。
關於延遲減少值之前,您是正確的。 這將與socket.io中的連接超時值相關。 您不能保證每個用戶都會使用websocket。 如果他們使用XHR輪詢或其他類型的傳輸層,則在遞減之前必須超時。 Websocket用戶將立即引起更改。
Google Analytics(分析)可以實時顯示您網站上的用戶以及他們正在查看的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.