javascript - 如何跟踪在网站上花费的时间

标签 javascript ruby-on-rails ruby coffeescript time-tracking

<分区>

在我的 Rails 应用程序中,我想跟踪单个用户在网站上花费的总时间。 我对此进行了研究,但无法得到完美的解决方案。
怎么可能。

最佳答案

类似的东西?

var time,timeSite;
window.onload=function(){
 time=new Date();
}


window.onbeforeunload=function(){
 timeSite=new Date()-time;
 window.localStorage['timeSite']=timeSite;
 //store it with whatever serverside language.
}

如果你想要更多,请添加 window.onblur

此代码有效.. ajax 也能正常工作...

在极端的解决方案中,将其存储在本地存储中(如示例中所示),然后在下次登录时执行 ajax。

这可以为您提供以秒为单位的准确时间...

如果你想要大约时间并且对于没有本地存储的用户每 5 分钟添加一个 setTimeout

如果 ajax 和 localstorage 不工作,更新时间就会过去。


这是一个用于在 onbeforeunload 函数内部进行测试的 ajax 调用。

根据需要更改 railsurl

var x=new XMLHttpRequest;x.open('get','railsurl?time='+timeSite);x.send();

正如@Yiğitcan Uçum 提到的..

为什么不直接使用服务器端 session 来开始和结束在网站上花费的时间?

关于javascript - 如何跟踪在网站上花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972745/

相关文章:

javascript - CDATA 在发送前被删除

ruby-on-rails - 通过浏览器而不是控制台使用 Rails 跟踪/BPT 陷阱

ruby-on-rails - 如何使用 Postgresql 和 Rails 更新多个表中的相同属性

mysql - 如何从控制台使用 Rails 3 事件记录插入多对多表

用于调用类中方法的 Ruby 语法

php - 在 php 循环中写入 javascript 数组

javascript - 未在 "mysite.com/"处加载时,RequireJS 不遵循相对路径

javascript - 问题 : can't access Json data inside the html template, AngularJS

javascript - 页面刷新后对话框显示为 div

ruby-on-rails - 我如何在运行 RVM 的本地目录(对于 GIT V.C.)中存储一个 gemfile