js统计页面停留时长
前言
页面停留时间简称为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是否为不同页面
- 客户端定义
new Tracer({ rules: [{ path: '/index' },{ path: '/detail/:id' },{ path: '/user', query: {tab: 'profile'} }]
)
- 数据分析平台
相关事件整理
- Page Visivility API
一个网页的可见状态 可以通过 Page Visivility API 获取 比如用户切换浏览器tab 最小化窗口 电脑睡眠 系统会派发 单签页面可见状态变化的visibilitychange事件 然后在事件绑定函数中通过document.hidden
或 document.visibilityState 读取当前状态
document.addEventListener('visibilitychange', function (event) { console.log(document.hidden, document.visibilityState)
})
什么时候上报数据
- 页面离开时上报
对于页面刷新或者关闭窗口触发的操作可能会照成数据丢失 - 下次打开页面时上报
会丢失历史访问记录中的最后一个页面数据
单页面应用 最好即时上报
js统计页面停留时长相关推荐
- 如何精确统计页面停留时长
关注公众号 前端开发博客,回复"加群" 加入我们一起学习,天天进步 作者:今日头条技术 链接:https://techblog.toutiao.com/2018/06/05/ru- ...
- Android 如何正确统计页面停留时长
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/112546517 本文出自[赵彦军的博客] 在Android中经常有统计页面停留时长 ...
- react利用useEffect记录用户在当前页面停留时长
项目场景: 小程序项目中需要记录用户在当前页面停留的时长,下意识想到在useState中记录一个时间戳,在useEffect中的return中获取一个时间戳,减去state中记录的时间戳,用得到的值取 ...
- 计算页面停留时长的另类方式
计算页面停留时长,往常计算也页面留时长都需要跑spark或这mr任务来实现,如果能跑sql来实现那是最好不过了(sql是最好的语言),废话不多说,直接搞起 注意:这里使用的计算引擎是presto 首先 ...
- 如何精确统计用户在页面的停留时长?
作者:今日头条技术 链接:https://techblog.toutiao.com/2018/06/05/ru-he-jing-que-tong-ji-ye-mian-ting-liu-shi-cha ...
- php统计在线时长,js统计网站运行时长
js统计网站运行时长 第一种: 网站 function siteTime(){ window.setTimeout("siteTime()", 1000); var seconds ...
- 如何知道页面浏览时长系列之 Web 篇
一.前言 页面浏览时长是网站分析中很常见的一个指标,反映用户在某些页面上浏览时间的长短,体现了网站用户黏性.然而精确的页面浏览时长是很难统计的,比如需要考虑单页面网页应用路由切换.用户切换浏览器 ta ...
- 数据埋点统计页面使用时长
Android应用中的页面,也就Activity,Fragment两种.对于Activity,系统了全局的生命周期监听的方法,只需要在onResume中记录页面显示时的时间,在onPause中计算显示 ...
- HTML5停留时长统计,平均停留时间
本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 这个指标由于其看上去是一个很容易理解的度量指标(不就是访客在这浏览这个网站时花了多少时间吗).因此不少管理人员特别是其他非网站 ...
最新文章
- Android笔记之使用LocationManager获取经纬度
- Windows Phone 7用户界面原型截图汇总
- matlab cell转double_MATLAB处理数据,掌握这7个小技巧就够了
- liunx 常用命令-cut
- ubuntu 14 安装XML::Simple 模块
- Sublime Text 3 安装及插件推荐
- Magento给产品添加“new”或者折扣数量标签 magento new label. discount label
- 7、【转载】python yield generator 详解
- 隐藏input的光标
- 网络编程在线英英词典之注册模块实现(三)
- 人工智能深度学习数据集
- 嵌入式软件工程师是前端还是后端_【一线】当嵌入式软件工程师有什么感受
- 谷歌搜索没有相机图标_关于Google图片网站不能以图搜图的解决方案
- 我看过的世界历史纪录片和科技史、经济史、人类史笔记
- 3 款非常实用的 Node.js 版本管理工具
- 海湾crt显示与服务器连接断开,secureCRT自动断开的解决方法
- qlabel 详解
- Java Web程序设计第12章课后第1题
- 后羿采集器怎么导出数据_数据采集教程_智能模式_基本操作流程_后羿采集器
- 电信3g在小米信号显示无服务器,关于小米手机电信3G信号问题的分析