V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
JohnLou
V2EX  ›  问与答

页面停留时间怎么获取。

  •  
  •   JohnLou · 2016-11-15 14:51:19 +08:00 · 1553 次点击
    这是一个创建于 2929 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    3 条回复    2016-11-15 17:20:11 +08:00
    alexsunxl
        1
    alexsunxl  
       2016-11-15 16:10:23 +08:00
    离开事件理论上是可以发请求,但是请求中断或者无效的概率很大。
    可能先把监控数据记录起来在 localstore ,请求成功就删掉, 不成功就下一次再上报。
    用户如果不再访问网站,也可能会手机不到,但总体来说,比以来单一的事件要好很多。
    alexsunxl
        2
    alexsunxl  
       2016-11-15 16:10:46 +08:00
    上面打错字 ‘手机’ -> ‘收集’
    coraline
        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 的请求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2800 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.