如何统计用户在网站上的停留时间?

想知道用户在当前网站上停留了多长时间。

指用户打开这个网站到关闭这个网站或者跳转到其他网站的这个时间段。

目前没有很好的策略,定时上报似乎是下下策

阅读 7.4k
4 个回答

进入页面时执行个onload
退出页面时执行个onbeforeunload
这个时间差就是在当前页面的时间了。

相关文档:
window.onbeforeunload

当前网站的活动状态对应当前打开的一个浏览器窗口,可以监控当前window对象关闭事件。
但如果用户,同一浏览器打开几个窗口都是同一个网站,只有在浏览器层面解决。
第一种思路,客户端有一个唯一id对应用户,该用户登陆该网站时,后台记录时间,关闭窗口时触发关闭事件,给后台发送一个请求,后台记录关闭时间。不过这个也不完善。
,客户端和服务器采用双工通信。
第二种思路,如果是websocket,成功建立连接到连接断开,可以当做用户在网站的停留时间。
第三种思路,服务器查看建立过连接的IP地址,同一IP地址某一时间段通信频率较高,这个更不准确,只算个大概,当我没说。

很多方法啊,比如设置cookie
onload时候设置一个cookie储存当前时间
onbeforeunload时候获取一个时间,跟之前cookie比较,js计算一下下发。

看你想做成什么级别的统计了;我的项目有一个比较强调及时性的;承载一部分的http服务和其他服务;
这个项目的统计用的:
1,http头部的referer;
2,http头部的时间戳;
这种比较适合非http服务的统计;而且要比页面级别的BS结构的JS统计更精准;一般弱一点机房的使用这种方式实现的硬件产品实现这种底层的统计;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题