我有一个要求,用户按下启动计时器按钮,它就会开始记录时间。当用户浏览网站时,我希望有时间继续跟踪,直到他们按下停止按钮。
显然,这不能仅通过客户端 JavaScript 来实现,因为每个页面的刷新时间都会丢失。我想到的一个解决方案是使用 faye/websockets 将时间推送到浏览器,但是每经过一秒,就会将数据推送到客户端 - 对服务器造成压力。
我能想到的唯一解决方案是跟踪javascript中的时间,然后捕获页面卸载事件发送,向服务器发送ajax请求以及时间量,并让服务器继续增加时间,直到下一个页面出现完全读取。这意味着它不会使用推送技术,而只是使用常规的 ajax。这是这里的最佳选择还是有更好的解决方案?
最佳答案
如果用户杀死浏览器怎么办?在这种情况下,您将无法捕获卸载事件。
如果您需要客户端解决方案,请尝试将开始时间放入 localStorage 中,这将在页面加载期间持续存在。然后,当用户点击停止时,您可以使用 ajax 调用服务器并获取耗时。
关于javascript - 跟踪用户更改网页的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486069/