前言

页面停留时间简称为Tp 是网站分析中的一个指标 用于反映用户在某些页面的停留时间的长短


我们可以把页面的生命周期分为三个动作 进入 活跃状态切换 离开

一、如何监听页面的进入和离开

对于常规页面的 首次加载 页面关闭 刷新 等都可以通过 window.onload 和 window.onbeforeunload 来监听 页面的进入和离开 浏览器的前进和后退通过 pageshow和 pagehide处理

对于单页面应用 的内部跳转 可以转化为俩个问题
监听路由变化 判断URL是否为不页面

监听路由变化

路由变化的本质都会调用Histtory.pushState()或 History.replaceState()
通过 popstate 事件能解决一般的问题 因为他只会在浏览器前进后退的时候触发 调用 hittory.pushState() or history.replaceState() 不会触发
这个时候需要 Monkeypeatch 解决 运行时重写 history.pushState 和 history.replaceState 方法

let _wr =  function (type) {  let orig = window.history[type]return  function () {let rv = orig.apply(this, arguments)let e = new Event(type.toLowerCase())e.arguments = argumentswindow.dispatchEvent(e)return rv}
}
window.history.pushState = _wr('pushState')
window.history.replaceState = _wr('replaceState')
window.addEventListener('pushstate',  function (event) {})
window.addEventListener('replacestate',  function (event) {})

hashHistory的实现是基于hash变化 hash变化可以通过hashchange来监听

判断URL是否为不同页面

  1. 客户端定义
new Tracer({  rules: [{ path: '/index' },{ path: '/detail/:id' },{ path: '/user', query: {tab: 'profile'} }]
)
  1. 数据分析平台
    相关事件整理
  2. Page Visivility API
    一个网页的可见状态 可以通过 Page Visivility API 获取 比如用户切换浏览器tab 最小化窗口 电脑睡眠 系统会派发 单签页面可见状态变化的visibilitychange事件 然后在事件绑定函数中通过document.hidden
    或 document.visibilityState 读取当前状态
document.addEventListener('visibilitychange',  function (event) {  console.log(document.hidden, document.visibilityState)
})
什么时候上报数据
  1. 页面离开时上报
    对于页面刷新或者关闭窗口触发的操作可能会照成数据丢失
  2. 下次打开页面时上报
    会丢失历史访问记录中的最后一个页面数据

单页面应用 最好即时上报

js统计页面停留时长相关推荐

  1. 如何精确统计页面停留时长

    关注公众号 前端开发博客,回复"加群" 加入我们一起学习,天天进步 作者:今日头条技术 链接:https://techblog.toutiao.com/2018/06/05/ru- ...

  2. Android 如何正确统计页面停留时长

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/112546517 本文出自[赵彦军的博客] 在Android中经常有统计页面停留时长 ...

  3. react利用useEffect记录用户在当前页面停留时长

    项目场景: 小程序项目中需要记录用户在当前页面停留的时长,下意识想到在useState中记录一个时间戳,在useEffect中的return中获取一个时间戳,减去state中记录的时间戳,用得到的值取 ...

  4. 计算页面停留时长的另类方式

    计算页面停留时长,往常计算也页面留时长都需要跑spark或这mr任务来实现,如果能跑sql来实现那是最好不过了(sql是最好的语言),废话不多说,直接搞起 注意:这里使用的计算引擎是presto 首先 ...

  5. 如何精确统计用户在页面的停留时长?

    作者:今日头条技术 链接:https://techblog.toutiao.com/2018/06/05/ru-he-jing-que-tong-ji-ye-mian-ting-liu-shi-cha ...

  6. php统计在线时长,js统计网站运行时长

    js统计网站运行时长 第一种: 网站 function siteTime(){ window.setTimeout("siteTime()", 1000); var seconds ...

  7. 如何知道页面浏览时长系列之 Web 篇

    一.前言 页面浏览时长是网站分析中很常见的一个指标,反映用户在某些页面上浏览时间的长短,体现了网站用户黏性.然而精确的页面浏览时长是很难统计的,比如需要考虑单页面网页应用路由切换.用户切换浏览器 ta ...

  8. 数据埋点统计页面使用时长

    Android应用中的页面,也就Activity,Fragment两种.对于Activity,系统了全局的生命周期监听的方法,只需要在onResume中记录页面显示时的时间,在onPause中计算显示 ...

  9. HTML5停留时长统计,平均停留时间

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 这个指标由于其看上去是一个很容易理解的度量指标(不就是访客在这浏览这个网站时花了多少时间吗).因此不少管理人员特别是其他非网站 ...

最新文章

  1. Android笔记之使用LocationManager获取经纬度
  2. Windows Phone 7用户界面原型截图汇总
  3. matlab cell转double_MATLAB处理数据,掌握这7个小技巧就够了
  4. liunx 常用命令-cut
  5. ubuntu 14 安装XML::Simple 模块
  6. Sublime Text 3 安装及插件推荐
  7. Magento给产品添加“new”或者折扣数量标签 magento new label. discount label
  8. 7、【转载】python yield generator 详解
  9. 隐藏input的光标
  10. 网络编程在线英英词典之注册模块实现(三)
  11. 人工智能深度学习数据集
  12. 嵌入式软件工程师是前端还是后端_【一线】当嵌入式软件工程师有什么感受
  13. 谷歌搜索没有相机图标_关于Google图片网站不能以图搜图的解决方案
  14. 我看过的世界历史纪录片和科技史、经济史、人类史笔记
  15. 3 款非常实用的 Node.js 版本管理工具
  16. 海湾crt显示与服务器连接断开,secureCRT自动断开的解决方法
  17. qlabel 详解
  18. Java Web程序设计第12章课后第1题
  19. 后羿采集器怎么导出数据_数据采集教程_智能模式_基本操作流程_后羿采集器
  20. 电信3g在小米信号显示无服务器,关于小米手机电信3G信号问题的分析

热门文章

  1. NGUI 动态向grid里添加项没有裁剪问题的解决方案
  2. 2022考研复试时间轴及注意事项!重要哟!
  3. 第三届5G创新发展高峰论坛在北京召开
  4. 服务器泛解析网站,网站域名解析教程
  5. php中的?= ?替换?php echo ?
  6. 在打包过程中小米手机的apk图标失败的解决方法
  7. Golang获取年月日时间字符串和时间戳
  8. 从Select出发认识SQL语句
  9. WPF的布局控件:Grid,StackPanel,DockPanl,Canvas,WrapPanel, UniformGrid
  10. EDIUS中的局部区域该怎么进行模糊