当用户直接关闭浏览器时如何跟踪注销活动

Posted

技术标签:

【中文标题】当用户直接关闭浏览器时如何跟踪注销活动【英文标题】:How to track logout activity when user directly closes the browser 【发布时间】:2016-12-26 18:58:20 【问题描述】:

我有一个基于 jsp 的网站,我在 mysql 数据库中跟踪登录时间。 我还在 mysql 数据库中跟踪注销时间。 但是,只有当用户通过正确的方法(即单击注销按钮)进行注销时,注销时间才有效。 如果用户直接关闭浏览器,那么我无法跟踪注销时间。 请帮忙。

【问题讨论】:

【参考方案1】:

这种情况的典型方法是使用Heart-beat 监视器。简单的想法是:从客户端代码(通过AJAX)向服务器发送每个特定时间段的请求。当下一个请求未到达时,您将了解用户已关闭其浏览器。

你也可以在这里阅读:http://softwareas.com/heartbeat-pattern-supporting-library/

【讨论】:

【参考方案2】:

您在时间跟踪中的错误标准是什么?

如果最多 30 分钟,那么您可以使用 HttpSessionBindingListener 来完成。这将

否则,如果它最多 5 分钟或更短,那么如上所述,您可以做的是对单独的 servlet 进行 ajax 调用,该 servlet 将更新数据库的最后请求时间。如果您更新数据库中收到的最后一个请求的时间,那么您甚至不需要检查上一个请求和当前请求。

For example,如果你选择第二个选项,我在上午 12:05 打开一个页面并保持打开到 12:19,然后关闭我的浏览器,那么在你的数据库中,我的最后一次请求时间将是上午 12:15,如果您每 5 分钟从客户端调用一次服务器。他可以解决你的问题。

一些公司使用某种类似的方式进行不同的登录,即提取一些数据而不是更新一些数据到数据库以保持会话持续一整天,即使您只是保持浏览器打开,甚至在登录后不做任何事情。

【讨论】:

以上是关于当用户直接关闭浏览器时如何跟踪注销活动的主要内容,如果未能解决你的问题,请参考以下文章

当浏览器关闭时,是不是有可靠的方法来注销用户?

Rails设计gem:强制注销浏览器选项卡关闭

当用户关闭浏览器而不单击注销时销毁或取消设置会话[重复]

定时自动注销和浏览器关闭

为不再活动的所有用户添加注销时间(关闭浏览器或选项卡)[重复]

关闭浏览器时用户在 IE 中注销