【问题标题】:How to capture Event when user close tab or window?用户关闭选项卡或窗口时如何捕获事件?
【发布时间】:2014-05-01 19:08:24
【问题描述】:

我正在开发一个网络应用程序,我需要跟踪用户使用此应用程序的时间。
但问题是如何在用户关闭选项卡或窗口时捕获该事件?
我找到了一种创建调度程序 的解决方案,它在服务器端 上运行。 每 10 分钟从客户端向服务器发送一个请求。
因此,每当服务器停止从客户端获取请求时,我可以假设客户端已停止使用此应用程序。这就是我可以跟踪特定用户的登录时间的方式。 这种方法仍然存在一个问题,登录时间可能有 10 分钟的差异,因为服务器每 10 分钟从客户端获取一次请求。
这种方法似乎很尴尬。 有没有其他方法可以找到用户访问我的网络应用程序的登录时间?

提前致谢

【问题讨论】:

    标签: events time scheduler


    【解决方案1】:

    其实你不能像这样捕捉事件,因为场景太多了。
    但实现这一点的一种方法是创建一个调度程序。
    让我详细解释一下。

    1. 在客户端创建调度程序,它将向服务器发送请求。
    2. 在服务器端创建调度程序,该调度程序将捕获客户端发送的请求。

    调度器应该在某个时间间隔。
    这样你就可以知道你的客户是活的。当您没有收到来自客户端的任何请求时,您认为客户端已断开连接。

    【讨论】:

      【解决方案2】:

      您可以使用socket.io 并持续监控用户/查看用户何时关闭连接。

      您还可以通过onunload 事件跟踪用户何时离开页面,但我认为如果用户关闭选项卡/窗口而不是导航离开,这不会被调用。

      【讨论】:

      • 您知道如何使用socket.io 跟踪它吗?
      • 它有一个客户端断开功能事件,每次客户端断开连接时都会调用该事件:socket.on('disconnect', function(){...})
      • 此事件发生在服务器端,而不是客户端。所以socket.io 打开了一个到客户端的websocket 连接,这基本上是一个实时连接,所以它知道客户端何时关闭它/离开/任何其他导致断开连接的原因。
      • 你有什么简单的解释或教程吗?
      猜你喜欢
      • 2010-11-25
      • 2015-12-15
      • 2013-12-03
      • 2016-07-11
      • 2014-02-09
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多