描点监控SDK
埋点监控的职责范围
用户行为监控
1、统计页面访问次数(PV)
2、统计页面访问人数(PV)
3、用户点击行为监控
页面性能监控
页面的性能数据可以通过performance.timing
这个API获取到,获取的数据是单位为毫秒的时间戳。
错误报警监控
错误报警监控分为JS原生错误和React/Vue的组件错误的处理。
JS错误分为下面8类:
InternalError: 内部错误,比如如递归爆栈;
RangeError: 范围错误,比如new Array(-1);
EvalError: 使用eval()时错误;
ReferenceError: 引用错误,比如使用未定义变量;
SyntaxError: 语法错误,比如var a = ;
TypeError: 类型错误,比如[1,2].split(‘.’);
URIError: 给 encodeURI或 decodeURl()传递的参数无效,比如decodeURI(‘%2’)
Error: 上面7种错误的基类,通常是开发者抛出
数据发送
<1>使用图片的src属性,原因:
- 没有跨域的限制,像
srcipt
标签、img标签都可以直接发送跨域的GET请求,不用做特殊处理; - 兼容性好,一些静态页面可能禁用了脚本,这时script标签就不能使用了;
<2> 使用Navigator.sendBeacon,原因:
- 不会和主要业务代码抢占资源,而是在浏览器空闲时去做发送;
- 并且在页面卸载时也能保证请求成功发送,不阻塞页面刷新和跳转;
现在的埋点监控工具通常会优先使用sendBeacon,但由于浏览器兼容性,还是需要用图片的src兜底。