google analytics 后台统计显示访客访问时间是 0 ,后来查了一下了解到如果跳出率是 100%的话,页面是无法获取访问时长的。 用 window.unload 可以发 ajax 吗? setinterval 应该可以实现,但好像没有统计工具这样做的。
1
alexsunxl 2016-11-15 16:10:23 +08:00
离开事件理论上是可以发请求,但是请求中断或者无效的概率很大。
可能先把监控数据记录起来在 localstore ,请求成功就删掉, 不成功就下一次再上报。 用户如果不再访问网站,也可能会手机不到,但总体来说,比以来单一的事件要好很多。 |
2
alexsunxl 2016-11-15 16:10:46 +08:00
上面打错字 ‘手机’ -> ‘收集’
|
3
coraline 2016-11-15 17:20:11 +08:00 1
有一个做法:
用户进入页面产生一个时间 start_time 然后 window.onbeforeunload 时候拿到最后时间 end_time 然后问题是怎么把这个时间间隔发到服务器,这里也有一个做法: 产生一个 image 请求,请求 url 就是你后端统计 url ,不用是一个 url ,错误与否都无所谓,类似这样 ```js var imgLog = function (url) { var img = new Image(); img.onload = img.onerror = function () { img.onload = img.onerror = null; img = null; } img.src = url + '?xxxx'; } ``` 最后一个重点地方: 加上这个 `setTimeout(function(){}, 1000)` 让浏览器完成 iamge 的请求 |