【问题标题】:Update mysql data when browser is close浏览器关闭时更新mysql数据
【发布时间】:2017-11-03 09:32:32
【问题描述】:

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

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

【问题讨论】:

标签: php


【解决方案1】:

1- 您可以使用unloadbeforeunload 事件,它们将在选项卡/窗口/关闭时触发,但您永远无法确定它是否真的到达了服务器。

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

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

【讨论】:

    【解决方案2】:

    像这样捕获窗口关闭事件 -

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-19
      • 2020-10-09
      • 1970-01-01
      • 2023-03-07
      • 2011-10-03
      • 2012-09-25
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多