2010-11-20 215 views
1

我在計算有多少用戶在線,但是如果一個人在沒有註銷的情況下關閉一個窗口,他不在線,我需要通過javascript或jquery動態註銷該用戶。 當我用身體onunload事件來檢查它的工作原理,但如果我刷新頁面,它也調用身體卸載事件。javascript窗口卸載事件

這裏是我的代碼

<script> 
function LogmeOut() 
{ 
    window.location='logout.php'; 
} 
</script 
<body onUnload="LogmeOut();"> 
    ..... 
    ..... 
</body> 

註銷PHP將關閉窗口前signout當前用戶。 有什麼建議嗎?

+0

你不能做這個完整的UI或​​jQuery的,你需要的後臺支持,像會議管理。 – kobe 2010-11-20 07:57:02

回答

5

我不認爲有一個可靠的方式來告訴。

最好的辦法是當用戶訪問一個頁面,在數據庫中更新他們的活動並設置新的過期時間(例如15分鐘)。

如果用戶在查詢時沒有任何活動,則可以將其計爲離線。

+0

+1,用於提示管理會話IMO的最佳方式,即解決超時的概念。如果用戶在x時間內未處於活動狀態,則他們將被註銷。 – Alex 2010-11-20 07:47:53

0

我喜歡Alex的答案,如果你去通過JavaScript跟蹤您的活躍用戶,它肯定還會有錯誤,由於瀏覽器崩潰,「活躍」,但實際上誰離開他們的瀏覽器閒置等活動的用戶...

亞歷克斯的方法避免了這一切。的

+0

感謝您的意見.... – Jute 2010-11-22 04:29:19

0

而不是使用window.onunload,我寧願用window.onbeforeunload,然後作出一個AJAX調用logout.php像以下:

window.onbeforeunload = function(){ 
    // make an ajax call to logout.php 
}; 
+0

感謝您的意見..... – Jute 2010-11-22 04:27:31