JS判断用户是否在线的方法

在以前坐项目的时候,经常碰见通过sessionLisnter来判断用户是否在线的方法,但是由于用户关闭浏览器时不会立刻是否session,因此大部分时候都考虑在页面中通过JS来监控页面是否关闭。

网络上常见的方法有:

window.onbeforeunload

window.onunload

众说纷纭,经过实验:(IE11,chrome,FireFox)

window.onbeforeunload:三个浏览器在通过右上角关闭按钮来关闭的时候,会触发事件。但是页面通过F5来刷新的时候也会触发事件。

(FireFox一开始不能触发,后来不知道为什么可以了,非常诡异,有知道的可以告诉一下)。

测试代码:

window.onbeforeunload = function(e) {
    var evt = e ? e : (window.event ? window.event : null); 
    evt.returnValue = '离开会使编写的内容丢失';
}

那问题来了,如果采用这种办法的话,会造成用户进行刷新时,后台错误的以为是退出来执行退出操作,造成误处理。

因此不建议再采用这种方式,进行处理。

个人能想到的办法,可以在前台通过轮询的方式进行判断,但是可能会浪费资源。

其他人有没有更好的办法,欢迎留言讨论。

原文地址:https://www.cnblogs.com/sdjnzqr/p/4272468.html