<分区>
在我的 Rails 应用程序中,我想跟踪单个用户在网站上花费的总时间。
我对此进行了研究,但无法得到完美的解决方案。
怎么可能。
<分区>
在我的 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/
相关文章:
ruby-on-rails - 通过浏览器而不是控制台使用 Rails 跟踪/BPT 陷阱
ruby-on-rails - 如何使用 Postgresql 和 Rails 更新多个表中的相同属性
mysql - 如何从控制台使用 Rails 3 事件记录插入多对多表
php - 在 php 循环中写入 javascript 数组
javascript - 未在 "mysite.com/"处加载时,RequireJS 不遵循相对路径
javascript - 问题 : can't access Json data inside the html template, AngularJS