浏览器关闭时跟踪会话注销时间

时间:2013-01-09 23:32:20

标签: php session

我正在编写一个php应用程序,我在txt文件中记录用户登录和注销时间。登录是最简单的部分。我认为退出有点棘手。通过选择注销选项手动杀死用户会话时,我可以不经过深思熟虑地跟踪注销时间。但是当他关闭浏览器的标签或窗口时,我该怎么办?我想我必须使用js来检测这些事件,使用window.onbeforeunload =“foobarA()”window.onunload =“foobarB()”,然后触发php跟踪时间到txt作为注销时间。但这只检查浏览器的窗口关闭效果。如果用户关闭了我们的应用程序正在运行的标签,然后在不关闭浏览器的情况下在互联网上播放或浏览数小时,我该如何跟踪其注销时间的准确性?

1 个答案:

答案 0 :(得分:2)

您不能依赖卸载事件,因为a)并非每个浏览器都会处理它们; b)不同的浏览器对它们可以执行的操作有不同的限制。从服务器关闭连接时,可以使用websocket和monitor。对于不支持websockets的客户端,您可以每5秒使用AJAX回发到脚本。如果您在过去5s内未收到请求,则已“退出”。