1

我很想检测用户何时离开我的网站,以便准确记录相关用户的会话时长。我已经想到了几个可能的解决方案:

我首先认为我可以使用 onbeforeunload 并发送一个简单的 ajax 来记录最后的活动,但实践告诉我的是,onbeforeunload 现在不可靠,使用它不是一个好主意,因为它不是跨浏览器。

然后我想我可以使用cookie来记录用户的会话长度,每次用户显示活动时分别增加cookie值。这里的问题是我无法检测到哪个是用户的最后一个活动,并且我可以安全地插入会话长度并知道它是准确的唯一可能方法是当用户很长时间没有登录并且 cookie 的值将是最后一个会话长度。这不适合我,因为许多用户可能只打开该站点一次而不再访问它(例如),那么这些用户都不会被记录。

有没有人有这个问题的解决方案?我似乎已经搜索过,但我找到的答案都不是令人满意的。

先感谢您!

4

3 回答 3

1

您无法判断用户何时离开您的站点,这从根本上不受 Internet 底层技术的支持。您所能做的就是告诉会话过期前最后一次请求的时间。

于 2013-06-02T17:49:48.410 回答
1

您可以使用 Javascript 进行投票。例如,如果您有一个使用 Ajax 加载新信息的股票文本或图像滚动器,您可以使用这些请求的时间来猜测最后一个活动。你也可以对它做专门的请求,但是对访问者来说这是浪费带宽,他们可能不喜欢这种严格监控的想法。

您还可以测量页面浏览之间的时间,并将最后一个页面浏览(退出页面)排除在等式之外。

于 2013-06-02T17:52:56.107 回答
0

如果您需要为特定用户执行此操作,那么最好的办法是执行一次 Ajax 请求,例如每 60 秒,并在数据库中记录他们会话的时间戳。当您测量响应时,您可以将超出合理截止时间的任何内容归类为“左”(例如,典型的浏览器会话为 20 分钟)。

如果您不需要个人用户的这些数据,而只需要访问者的平均指标,那么您不妨使用 Google Analytics。

于 2013-06-02T18:01:55.860 回答