正在做一個(gè)需要驗(yàn)證是否在線功能的web系統(tǒng),對(duì)於在線情況我實(shí)在用表中添加一個(gè)在線字段1為在線,0為離線網(wǎng)站中有退出按鈕,點(diǎn)擊按鈕正常退出時(shí)將用戶表的在線欄位置0,清空session 退出網(wǎng)站沒(méi)問(wèn)題,但是在使用者直接關(guān)閉視窗或?yàn)g覽器後怎麼將使用者線上狀態(tài)修改為離線就無(wú)法做到了。目前嘗試用JS監(jiān)控使用者是否關(guān)閉視窗或?yàn)g覽器然後在關(guān)閉事件中加上退出方法 在網(wǎng)路上找的一些監(jiān)控關(guān)閉瀏覽器的JS程式碼如下
<script type="text/javascript">
window.onbeforeunload = function(e) {
e = e || window.event;
var msg = "您確定要離開(kāi)此頁(yè)面嗎?";
// IE
e.cancelBubble = true;
e.returnValue = msg;
// Firefox
if(e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
// Chrome / Safari
return msg;
};
</script>
其中onbeforeunload 或onload 等方法都無(wú)法判斷 關(guān)閉瀏覽器/刷新頁(yè)面/跳轉(zhuǎn)頁(yè)面的動(dòng)作,不知道有沒(méi)有朋友有這方面的經(jīng)驗(yàn),求支招
學(xué)習(xí)是最好的投資!
每間隔1s通知服務(wù)期該客戶端在線,在服務(wù)端確認(rèn),如果失去客戶端聯(lián)繫,則確認(rèn)離線。
setInterval(function(){
$.ajax({
type: "GET",
url: "server url",
data: {isOnline:1},
dataType: "json",
success: function(data){
//客戶端在線
}
});
}, 1000);