我一直在疯狂思考如何在浏览器关闭时解决更新mysql的问题。当用户登录时,我在我的Web应用程序中登录,当他们退出时,状态= 1(在线),然后状态= 0(离线)。
有没有适当或最佳的做法来处理这种情况?任何解决方案将不胜感激。谢谢。
答案 0 :(得分:1)
1-您可以使用unload
或beforeunload
事件,这些事件将在标签/窗口/关闭时触发,但如果真的到达服务器,您将无法确定。
2-如果您能够在服务器端使用NodeJS并且客户端不发送心跳消息,您可以使用“Heartbeat”,您可以在服务器端为客户端更新它。
3-另一种方式是,当客户端在线或离线时,您可以向表中添加新列(DateTime)并在活动上更新它。如果日期早于(例如10分钟),则表示用户可能处于离线状态。
答案 1 :(得分:0)
像这样捕捉Window关闭事件 -
$(window).on("beforeunload", function() {
// YOUR CODE
})
现在在YOUR_CODE
部分,发出ajax请求并更新状态为0的用户。这意味着如果用户在没有注销的情况下关闭窗口,您仍然可以将状态设置为0.