浏览器关闭时更新mysql数据

时间:2017-11-03 09:32:33

标签: php

我一直在疯狂思考如何在浏览器关闭时解决更新mysql的问题。当用户登录时,我在我的Web应用程序中登录,当他们退出时,状态= 1(在线),然后状态= 0(离线)。

有没有适当或最佳的做法来处理这种情况?任何解决方案将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

1-您可以使用unloadbeforeunload事件,这些事件将在标签/窗口/关闭时触发,但如果真的到达服务器,您将无法确定。

2-如果您能够在服务器端使用NodeJS并且客户端不发送心跳消息,您可以使用“Heartbeat”,您可以在服务器端为客户端更新它。

3-另一种方式是,当客户端在线或离线时,您可以向表中添加新列(DateTime)并在活动上更新它。如果日期早于(例如10分钟),则表示用户可能处于离线状态。

答案 1 :(得分:0)

像这样捕捉Window关闭事件 -

$(window).on("beforeunload", function() { 
    // YOUR CODE
})

现在在YOUR_CODE部分,发出ajax请求并更新状态为0的用户。这意味着如果用户在没有注销的情况下关闭窗口,您仍然可以将状态设置为0.