我正在处理任何需要检测用户是否关闭标签页或浏览器的应用程序,以便我可以将用户与其他用户基本上断开聊天应用程序。
我用过: -
window.onbeforeunload = confirmExit;
function confirmExit() {
if(needToConfirm) {
return "Leaving this page will end your conversation.";
}
它的工作正常,当我尝试关闭浏览器或标签时,它会显示一个弹出消息“按OK继续,或取消保留在当前页面上”。 我想在用户点击“确定”按钮时执行任务,如果按“取消”,则会保留在当前页面上。
请帮帮我:(
提前致谢
Ansh J
答案 0 :(得分:4)
这是不可能的。
你可以处理unload
事件并在那里发送一个AJAX请求,但这可能不完全可靠。
最佳解决方案是每隔 x 分钟发送一次AJAX听觉,并在停止接收心跳时考虑用户断开连接。
答案 1 :(得分:2)
反过来说:当您收到Unload事件时,请向服务器发送一条消息,通知用户即将断开连接。服务器等待一段时间,然后自动断开连接。
然后,如果用户单击取消并停留在页面上,则会向服务器发送一条消息,通知客户端仍然存在。
缺点是,如果用户等待太长时间点击取消,他可能会断开连接。
答案 2 :(得分:1)
为什么不让客户定期'ping'服务器让它知道它们仍在那里,如果用户错过了说3 ping,那么它会被标记为已注销?