如何解决在浏览器窗口关闭时执行 AJAX
我有一个使用 Laravel Echo 和 Pusher(类似于 Socket.io)的聊天应用。
我在这里遇到的问题是,如果另一端没有单个用户在线,我将无法更新数据库中的用户在线状态
在互联网上搜索并发现了 Javascript 中的 unload
事件,但他们说处理这个问题不可靠。
我还没有在 Laravel Echo 上找到触发它的事件,即使每次用户加载页面或浏览器关闭时 Pusher 都会记录“断开连接”事件
处理这个问题最有效的方法是什么?
解决方法
我不知道使用过的工具。也许使用假用户/机器人来让至少有人始终在线?
关于关闭窗口。还有其他适合于此的事件。最明显和推荐的是beforeunload
。另一个选项是 pagehide
,但目前支持较少,含义略有不同。
navigator.sendBeacon()
在这里也可能用作网络请求传输。这样浏览器就不必等待响应。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。