如何检测会话何时结束

How to detect when a session ends

本文关键字:会话 何时 结束 检测 何检测      更新时间:2023-09-26

是否有一种方法可以检测到当有人离开你的网站?到目前为止,我知道使用ignore_user_abort(),但这是我所能得到的。

我需要知道这一点的原因是因为我需要一个脚本在有人离开网站时执行。

在数据库中为每个用户记录时间戳,并在每次加载页面时(或通过AJAX)更新此时间戳。

当最后一次更新的时间戳超过一定时间(30分钟?),你可以认为他们已经离开了网站,然后做你的代码,然后删除条目。

  • 想法:一个"用户"可以是一个主键,由他们的IP和用户代理组成,例如MD5哈希。

1)我已经找到了会话超时警告PHP示例与jQuery/JS文章

2) PHP线程超时

3)还有关于如何使用jQuery和ColdFusion的文章

我可以很容易地使用javascript,检查这个解决方案

  <body onbeforeunload="winCloseFunc();"> =) 

由于http的无状态特性,没有一种简单的方法可以判断用户何时离开站点。当他们离开一个页面时触发onUnload是可能的,但是当他们在你的网站上从一个页面导航到另一个页面时也会触发。

  • Mozilla的Ref: https://developer.mozilla.org/en/DOM/window.onunload
  • MS的Ref: http://msdn.microsoft.com/en-us/library/ms536907(v=vs.85).aspx

正常情况下,当用户在X分钟内没有出现时,会话设置为过期。