【问题标题】:how to catch cache clear event using javascript?如何使用 javascript 捕获缓存清除事件?
【发布时间】:2012-11-24 04:41:49
【问题描述】:

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

所以,任何对如何使用 javascript 捕获缓存清除事件有一些想法的人,请告诉我。

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

任何建议都会被采纳。

提前谢谢.....

【问题讨论】:

  • 没有“缓存清除”事件。无法检测用户何时清除浏览器缓存。

标签: php javascript sockets browser-cache


【解决方案1】:

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

您是否考虑过每隔一段时间在两个用户之间发送一个不可见的“ping”(选择一个阈值,例如 1 分钟),如果两个用户都没有收到一个 ping(阈值 + 较小的阈值),将考虑其他用户离线(或更强有力地发送另一个“我还在这里”ping 的请求)。

【讨论】:

  • thnx ascii-lime,对于你的建议,但这个解决方案似乎并不适合我的问题,因为我已经提到聊天是通过套接字完成的,用户名来自数据库....再次感谢
  • @RaviDalal 也许您可以改为让每个用户 ping 存储数据库的服务器,如果用户在一定时间内无法 ping,您可以将它们从数据库中删除。
  • 这是唯一可靠的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-07
相关资源
最近更新 更多