V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
JohnLou
V2EX  ›  问与答

页面停留时间怎么获取。

  •  
  •   JohnLou · Nov 15, 2016 · 1847 views
    This topic created in 3456 days ago, the information mentioned may be changed or developed.

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

    3 replies    2016-11-15 17:20:11 +08:00
    alexsunxl
        1
    alexsunxl  
       Nov 15, 2016
    离开事件理论上是可以发请求,但是请求中断或者无效的概率很大。
    可能先把监控数据记录起来在 localstore ,请求成功就删掉, 不成功就下一次再上报。
    用户如果不再访问网站,也可能会手机不到,但总体来说,比以来单一的事件要好很多。
    alexsunxl
        2
    alexsunxl  
       Nov 15, 2016
    上面打错字 ‘手机’ -> ‘收集’
    coraline
        3
    coraline  
       Nov 15, 2016   ❤️ 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 的请求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2689 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 03:32 · PVG 11:32 · LAX 20:32 · JFK 23:32
    ♥ Do have faith in what you're doing.