JS监听窗体关闭事件

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

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

<script type="text/javascript">  

    window.onbeforeunload = onbeforeunload_handler;   


    function onbeforeunload_handler() {


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


        return warning;


    }
</script>

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

 

个人理解的东西,如果有高人有其他见解,请多指教。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值