2013-01-09 84 views
0

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

+1

你不能。 (不*精确*无论如何) – dualed

+0

不能使用析构函数完成。当我了解到C++析构函数在类实例被终止时执行。我不确定它是否适用于PHP,但您可以尝试。 – Ivan

回答

2

您不能依赖卸载事件:a)并非每个浏览器都会处理它们; b)不同的浏览器对可以在其中完成的操作有不同的限制。您可以使用WebSocket并监视连接从服务器关闭的时间。对于不支持Websocket的客户端,您可以每5秒对脚本使用AJAX进行回传。当您在过去5秒内没有收到请求时,已经“注销”。

+1

这也被称为*心跳*。 – hakre

+1

@hakre鉴于OP的原始问题的措辞,我不认为他/她熟悉“心跳”;) –

+1

;)这是没有批评,只是一些补充;) – hakre

相关问题