当前位置:首页 > 科技  > 软件

为了全面监控用户行为,我写了个超级前端工具库!

来源: 责编: 时间:2024-06-06 17:41:47 319观看
导读简介sunshine-track 应用于前端监控, 基于 行为上报,实现了 用户行为、错误监控、页面跳转、页面白屏检测、页面性能检测等上报功能。适用于 Vue、React、Angular 等框架本项目源码:https://github.com/sanxin-lin/sunsh

简介

sunshine-track 应用于前端监控, 基于 行为上报,实现了 用户行为、错误监控、页面跳转、页面白屏检测、页面性能检测等上报功能。适用于 Vue、React、Angular 等框架wQ628资讯网——每日最新资讯28at.com

本项目源码:https://github.com/sanxin-lin/sunshine-track。各位兄弟姐妹如果觉得喜欢的话,可以点个 star 哦~wQ628资讯网——每日最新资讯28at.com

功能

sunshine-track具备以下功能:wQ628资讯网——每日最新资讯28at.com

  • ✅ 用户行为上报:包括 点击、跳转页面、跳转页面记录数组、请求 等
  • ✅ 用户手动上报:提供 Vue 自定义指令 以及add、report函数,实现用户手动上报
  • ✅ 自定义上报:提供 格式化上报数据、自定义上报函数、自定义决定上不上报 等配置项,更灵活地上报数据
  • ✅ 请求数据上报:提供 检测请求返回、过滤请求 等配置项,让用户决定上报哪些请求数据
  • ✅ 上报方式:提供 上报方式 配置项,用户可选择 img、http、beacon 三种方式,http方式又支持 xhr、fetch 两种,且支持 自定义headers
  • ✅ 上报数据缓存:可配置 本地缓存、浏览器本地缓存、IndexedDB 三种方式
  • ✅ 上报数据阈值:可配置上报数据 阈值 ,达到 阈值 后进行上报操作
  • ✅ 全局点击上报:可通过配置 选择器、元素文本,对全局DOM节点进行点击上报
  • ✅ 页面的性能检测,包括 白屏、FP、FCP、LCP、CLS、TTFB、FID 等

上报数据格式

选项
wQ628资讯网——每日最新资讯28at.com

描述
wQ628资讯网——每日最新资讯28at.com

类型
wQ628资讯网——每日最新资讯28at.com

uuidwQ628资讯网——每日最新资讯28at.com

上报数据的id
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

type wQ628资讯网——每日最新资讯28at.com

上报数据的类型
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

data wQ628资讯网——每日最新资讯28at.com

上报数据
wQ628资讯网——每日最新资讯28at.com

anywQ628资讯网——每日最新资讯28at.com

timewQ628资讯网——每日最新资讯28at.com

上报时间
wQ628资讯网——每日最新资讯28at.com

numberwQ628资讯网——每日最新资讯28at.com

statuswQ628资讯网——每日最新资讯28at.com

上报状态
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

domainwQ628资讯网——每日最新资讯28at.com

当前域名
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

hrefwQ628资讯网——每日最新资讯28at.com

当前网页路径
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

userAgentwQ628资讯网——每日最新资讯28at.com

当前user-agent
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

deviceInfowQ628资讯网——每日最新资讯28at.com

设备的相关信息
wQ628资讯网——每日最新资讯28at.com

objectwQ628资讯网——每日最新资讯28at.com

安装

图片图片wQ628资讯网——每日最新资讯28at.com

使用

图片图片wQ628资讯网——每日最新资讯28at.com

全局点击监听

可以通过配置globalClickListeners来对于某些DOM节点进行点击监听上报wQ628资讯网——每日最新资讯28at.com

图片图片wQ628资讯网——每日最新资讯28at.com

配置上报阈值

上报分为几种:wQ628资讯网——每日最新资讯28at.com

  • 用户行为上报:点击、跳转页面、请求,这些上报数据会缓存着,当达到阈值时再进行上报
  • 错误上报:请求报错、代码报错、异步错误,这些是立即上报
  • 页面性能上报:白屏、FP、FCP、LCP、CLS、TTFB、FID,这些是立即上报

用户行为上报的阈值默认是 10,支持自定义 maxEventswQ628资讯网——每日最新资讯28at.com

图片图片wQ628资讯网——每日最新资讯28at.com

配置缓存方式

如果你想要避免用户重新打开网页之后,造成上报数据的丢失,那么你可以配置缓存方式,通过配置cacheType:wQ628资讯网——每日最新资讯28at.com

  • normal:默认,本地缓存
  • storage:浏览器 localStorage 本地缓存
  • db:浏览器 IndexedDB 本地缓存
app.use(Track, {  ...options,  cacheType: 'storage' // 配置缓存方式})

打印上报数据

可以通过配置 log ,开启打印上报数据。wQ628资讯网——每日最新资讯28at.com

图片图片wQ628资讯网——每日最新资讯28at.com

灵活上报请求数据

请求也是一种行为,也是需要上报的,或许我们有这个需求。wQ628资讯网——每日最新资讯28at.com

  • 过滤:某些请求我们并不想上报。
  • 自定义校验请求响应数据:每个项目的响应规则可能都不同,我们想自己判断哪些响应是成功,哪些是失败。

图片图片wQ628资讯网——每日最新资讯28at.com

格式化上报数据、自定义决定上不上报、自定义上报

如果你想在数据上报之前,格式化上报数据的话,可以配置report中的format。wQ628资讯网——每日最新资讯28at.com

图片图片wQ628资讯网——每日最新资讯28at.com

如果你想要自己决定某次上报的时候,进行取消,可以配置report中的isReport。wQ628资讯网——每日最新资讯28at.com

图片图片wQ628资讯网——每日最新资讯28at.com

如果你不想用这个库自带的上报功能,想要自己上报,可以配置report中的customReport。wQ628资讯网——每日最新资讯28at.com

图片图片wQ628资讯网——每日最新资讯28at.com

手动上报

手动上报分为三种:wQ628资讯网——每日最新资讯28at.com

  • 手动添加上报数据:添加到缓存中,等到达到阈值再上报。
  • 手动执行数据上报:立即上报。
  • 自定义指令上报:如果你是 Vue 项目,支持指令上报。

图片图片wQ628资讯网——每日最新资讯28at.com

如果你是 Vue 项目,可以使用指令v-track进行上报。wQ628资讯网——每日最新资讯28at.com

图片图片wQ628资讯网——每日最新资讯28at.com

配置参数

选项
wQ628资讯网——每日最新资讯28at.com

描述
wQ628资讯网——每日最新资讯28at.com

类型
wQ628资讯网——每日最新资讯28at.com

projectKeywQ628资讯网——每日最新资讯28at.com

项目key
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

userIdwQ628资讯网——每日最新资讯28at.com

用户id
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

report.urlwQ628资讯网——每日最新资讯28at.com

上报url
wQ628资讯网——每日最新资讯28at.com

stringwQ628资讯网——每日最新资讯28at.com

report.reportTypewQ628资讯网——每日最新资讯28at.com

上报方式
wQ628资讯网——每日最新资讯28at.com

img、http、beaconwQ628资讯网——每日最新资讯28at.com

report.headerswQ628资讯网——每日最新资讯28at.com

上报自定义请求头,http 上报模式生效wQ628资讯网——每日最新资讯28at.com

objectwQ628资讯网——每日最新资讯28at.com

report.formatwQ628资讯网——每日最新资讯28at.com

上报数据格式化
wQ628资讯网——每日最新资讯28at.com

functionwQ628资讯网——每日最新资讯28at.com

report.customReportwQ628资讯网——每日最新资讯28at.com

自定义上报
wQ628资讯网——每日最新资讯28at.com

functionwQ628资讯网——每日最新资讯28at.com

report.isReportwQ628资讯网——每日最新资讯28at.com

自定义决定上不上报
wQ628资讯网——每日最新资讯28at.com

functionwQ628资讯网——每日最新资讯28at.com

cacheTypewQ628资讯网——每日最新资讯28at.com

数据缓存方式
wQ628资讯网——每日最新资讯28at.com

normal、storage、dbwQ628资讯网——每日最新资讯28at.com

globalClickListenerswQ628资讯网——每日最新资讯28at.com

上报状态
wQ628资讯网——每日最新资讯28at.com

arraywQ628资讯网——每日最新资讯28at.com

logwQ628资讯网——每日最新资讯28at.com

当前域名
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

maxEventswQ628资讯网——每日最新资讯28at.com

上报阈值
wQ628资讯网——每日最新资讯28at.com

numberwQ628资讯网——每日最新资讯28at.com

historyUrlsNumwQ628资讯网——每日最新资讯28at.com

需要记录的url跳转数组
wQ628资讯网——每日最新资讯28at.com

numberwQ628资讯网——每日最新资讯28at.com

checkHttpStatuswQ628资讯网——每日最新资讯28at.com

判断响应数据
wQ628资讯网——每日最新资讯28at.com

functionwQ628资讯网——每日最新资讯28at.com

filterHttpUrlwQ628资讯网——每日最新资讯28at.com

过滤上报请求数据
wQ628资讯网——每日最新资讯28at.com

functionwQ628资讯网——每日最新资讯28at.com

switchs.xhrwQ628资讯网——每日最新资讯28at.com

是否开启xhr请求上报
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

switchs.fetchwQ628资讯网——每日最新资讯28at.com

是否开启fetch请求上报
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

switchs.errorwQ628资讯网——每日最新资讯28at.com

是否开启错误上报
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

switchs.whitescreenwQ628资讯网——每日最新资讯28at.com

是否开启白屏检测上报
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

switchs.hashchangewQ628资讯网——每日最新资讯28at.com

是否开启hash变化请求上报
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

switchs.historywQ628资讯网——每日最新资讯28at.com

是否开启history变化上报
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

switchs.performancewQ628资讯网——每日最新资讯28at.com

是否开启页面性能上报
wQ628资讯网——每日最新资讯28at.com

booleanwQ628资讯网——每日最新资讯28at.com

本项目源码:https://github.com/sanxin-lin/sunshine-track。各位兄弟姐妹如果觉得喜欢的话,可以点个 star 哦~wQ628资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-92466-0.html为了全面监控用户行为,我写了个超级前端工具库!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 关于 Python 数据分析的 15 个 NumPy 应用

下一篇: 动态链接库的实现原理是什么?

标签:
  • 热门焦点
  • 小米官宣:2023年上半年出货量中国第一!

    今日早间,小米电视官方微博带来消息,称2023年小米电视上半年出货量达到了中国第一,同时还表示小米电视的巨屏风暴即将开始。“公布一个好消息2023年#小米电视上半年出货量中国
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    今天这篇文章跟大家分享18个JS单行代码,你只需花几分钟时间,即可帮助您了解一些您可能不知道的 JS 知识,如果您已经知道了,就当作复习一下,古人云,温故而知新嘛。现在,我们就开始今
  • JVM优化:实战OutOfMemoryError异常

    一、Java堆溢出堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证 GC Roots 到对象之间有可达路径来避免垃 圾收集回收机制清除这些对象,当这些对象所占空间超过
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 华为Mate 60系列用上可变灵动岛:正式版体验将会更出色

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主“七王”在群里介绍一些刷单赚
Top