正在做一个需要验证是否在线功能的web系统,对于在线情况我实在用表中添加一个在线字段 1为在线,0为离线 网站中有退出按钮,点击按钮正常退出时将用户表的在线字段置0,清空session 退出网站没问题,但是在用户直接关闭窗口或者浏览器后怎么将用户在线状态修改为离线就无法做到了。目前尝试用JS监控用户是否关闭窗口或者浏览器然后在关闭事件中加上退出方法 在网上找的一些监控关闭浏览器的JS代码如下
<script type="text/javascript">
window.onbeforeunload = function(e) {
e = e || window.event;
var msg = "您确定要离开此页面吗?";
// IE
e.cancelBubble = true;
e.returnValue = msg;
// Firefox
if(e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
// Chrome / Safari
return msg;
};
</script>
其中onbeforeunload 或者onload 等方法都无法判断 关闭浏览器/刷新页面/跳转页面的动作,不知道有没有朋友有这方面的经验,求支招
迷茫2017-06-05 11:11:36
每间隔1s通知服务期该客户端在线,在服务端确认,如果失去客户端联系,则确认离线。
setInterval(function(){
$.ajax({
type: "GET",
url: "server url",
data: {isOnline:1},
dataType: "json",
success: function(data){
//客户端在线
}
});
}, 1000);