您的位置:首页 > Web前端 > JavaScript

JS监听窗体关闭事件

2014-08-22 16:31 106 查看
最近在做消息推送, 在监听用户是否在线时有个问题 就是: 用户正常退出的话可以清除用户在服务端的共享信息 ,但是用户如果关闭窗体没有与告知服务器,用户的信息还会保存在服务端。

解决这个问题需要检测到客户的关闭窗体事件:

<script type="text/javascript">

window.onbeforeunload = onbeforeunload_handler;

function onbeforeunload_handler() {

var warning = "啊大是大非是大法师大法是大法师大法是否?";

return warning;

}

</script>

当然如果用户的电脑关闭的话 或者 网络中断都会影响用户的实际在线状态 。那么更可靠的方法事记录客户最后一次发送请求的时间 如果在规定时间内再无请求的话,服务端主动更新用户的在线状态,不过这样的操作需要成本:数据库不停的检测在线用户的最后请求时间。相对于客户端的主动下线服务端的操作更为复杂,除了数据库不停的检测在线用户的最后请求时间外还有之后的操作,比如其他在线用户需要知道当前的用户还需要不停的请求数据库,如果客户端主动的话这些都不复杂了。

个人理解的东西,如果有高人有其他见解,请多指教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: