php - 如何使用javascript捕获缓存清除事件?

标签 php javascript sockets browser-cache

我正在开发一个基于套接字的聊天项目。我将所有在线用户的名称存储在数据库中,以便可以检查重复的用户名。如果我们正在聊天并且直接关闭浏览器,我的应用程序会让用户很容易离线,但问题是,当我们直接清除缓存时,从数据库中删除用户的 AJAX 调用将不会被调用。因此,即使我们清除了缓存并离线,我们也会在线显示给前端用户,这意味着该条目仍然保留在数据库中,因为没有触发 AJAX 调用并且我们直接清除了缓存。

因此,如果有人对如何使用 javascript 捕获缓存清除事件有所了解,请告诉我。

我在这个问题上做了很多谷歌搜索,但没有找到任何结果。

任何建议都会被采纳。

提前致谢......

最佳答案

您所要求的是不可能的(无法检测用户何时从 JavaScript 中清除浏览器缓存)。

您是否考虑过经常在两个用户之间发送不可见的“ping”(选择一个阈值,例如 1 分钟),并且对于两个用户,如果他们没有收到 ping(阈值 + 较小的阈值),将考虑其他用户离线(或者更稳健地发送另一个“我还在这里”ping 的请求)。

关于php - 如何使用javascript捕获缓存清除事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13538337/

相关文章:

javascript - 亚马逊 AWS 错误 : Missing credentials in config node. js

windows - VB.net 服务编程和使用 TCP 套接字

c++ - 你如何从远程机器获取IP地址?

java - PrintWriter 只发送部分字符串 Java

PHP Foreach 循环效率

javascript - 如何处理 Flux 和 React.js 中的非 View 更改操作

javascript - babel-node 无法在 node_modules 中要求 jsx 文件

PHP/MySQL/Jquery - 构建关联数组并使用 JQuery $.each 输出它

php - 所有异常的 Laravel 电子邮件通知

php - SQL 分组不按预期工作