javascript - 跟踪用户更改网页的时间

标签 javascript jquery ruby-on-rails

我有一个要求,用户按下启动计时器按钮,它就会开始记录时间。当用户浏览网站时,我希望有时间继续跟踪,直到他们按下停止按钮。

显然,这不能仅通过客户端 JavaScript 来实现,因为每个页面的刷新时间都会丢失。我想到的一个解决方案是使用 faye/websockets 将时间推送到浏览器,但是每经过一秒,就会将数据推送到客户端 - 对服务器造成压力。

我能想到的唯一解决方案是跟踪javascript中的时间,然后捕获页面卸载事件发送,向服务器发送ajax请求以及时间量,并让服务器继续增加时间,直到下一个页面出现完全读取。这意味着它不会使用推送技术,而只是使用常规的 ajax。这是这里的最佳选择还是有更好的解决方案?

最佳答案

如果用户杀死浏览器怎么办?在这种情况下,您将无法捕获卸载事件。

如果您需要客户端解决方案,请尝试将开始时间放入 localStorage 中,这将在页面加载期间持续存在。然后,当用户点击停止时,您可以使用 ajax 调用服务器并获取耗时。

关于javascript - 跟踪用户更改网页的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486069/

相关文章:

jquery - 流量比较条形图

ruby-on-rails - 在登录之前和之后保留 Rails 4 设计 session ID

javascript - 防止在 JavaScript 中冒泡和捕获时触发事件

javascript - Angular 将 ViewChild 绑定(bind)到类中的属性

javascript - 如何向表格行添加折叠

ruby-on-rails - 在哪里修补Rails ActiveRecord::find()以便首先检查内存中的集合?

ruby-on-rails - 在开发环境中静音 Rails memcache 日志记录

javascript - 为什么 Object.create 比构造函数慢那么多?

javascript - 等待 get 请求完成

javascript - 第一个点击事件返回 false 后不要调用第二个点击事件