页面停留时间怎么获取。

2016-11-15 14:51:19 +08:00
 JohnLou

google analytics 后台统计显示访客访问时间是 0 ,后来查了一下了解到如果跳出率是 100%的话,页面是无法获取访问时长的。 用 window.unload 可以发 ajax 吗? setinterval 应该可以实现,但好像没有统计工具这样做的。

1554 次点击
所在节点    问与答
3 条回复
alexsunxl
2016-11-15 16:10:23 +08:00
离开事件理论上是可以发请求,但是请求中断或者无效的概率很大。
可能先把监控数据记录起来在 localstore ,请求成功就删掉, 不成功就下一次再上报。
用户如果不再访问网站,也可能会手机不到,但总体来说,比以来单一的事件要好很多。
alexsunxl
2016-11-15 16:10:46 +08:00
上面打错字 ‘手机’ -> ‘收集’
coraline
2016-11-15 17:20:11 +08:00
有一个做法:
用户进入页面产生一个时间 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 的请求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/320670

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX