1

我正在编写一个 php 应用程序,并将用户登录和注销时间记录在一个 txt 文件中。登录是最简单的部分。我认为注销有点棘手。当通过选择注销选项手动终止用户会话时,我可以毫不犹豫地跟踪注销时间。但是当他关闭浏览器的标签或窗口时我能做什么?我想我必须使用 js 来检测那些带有 window.onbeforeunload="foobarA()" window.onunload="foobarB()" 的事件,然后触发 php 将时间跟踪到 txt 作为注销时间。但这仅检查浏览器的窗口关闭效果。如果用户关闭了我们的应用程序正在运行的选项卡,然后在没有关闭浏览器的情况下在互联网上玩或上网几个小时,我如何准确跟踪他的注销时间?

4

1 回答 1

2

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

于 2013-01-09T23:41:49.080 回答