我正在开发基于套接字的聊天项目。我将所有在线用户的名称存储在数据库中,以便检查是否有重复的用户名。如果我们正在聊天并且我们直接关闭浏览器,我的应用程序可以让用户轻松离线,但问题是当我们直接清除缓存内存时,不会调用从数据库中删除用户的AJAX调用。因此,即使我们已经清除缓存并变为脱机,我们也会在线显示给前端用户,这意味着该条目仍然存在于数据库中,因为没有触发AJAX调用,我们直接清除了缓存。
所以,对于如何使用javascript捕获缓存清除事件有任何想法的人,请告诉我。
我在这个问题上做了很多谷歌搜索,但没有找到。
任何建议都将受理。
Thnx提前.....
答案 0 :(得分:1)
您要求的是不可能的(无法检测用户何时从JavaScript中清除浏览器缓存)。
您是否考虑过频繁地在两个用户之间发送一个不可见的“ping”(选择一个阈值,如1分钟),对于这两个用户,如果他们没有收到ping(阈值+更小的阈值),将考虑其他用户离线(或更强大地发送请求另一个“我还在这里”ping)。