web 端 bug 监控与收集(一)
出现 bug 时,最困难的并不是 bug 本身,而是如何找到这个 bug,解决 bug 需要 1 分钟,而找到 bug 需要 1 小时。
需求
用户:你们网页中的按钮点击没反应了,我不能提交订单了!
客服:我们检查一下没遇到您说的问题,请问您使用的浏览器是?
用户:chrome 浏览器。
客服:我们也用的 chrome 浏览器,您要不换个浏览器试试
用户:买个东西还这么麻烦不买了!!!
开发:要怎么复现用户遇到的 bug 呢?
用户遇到问题时,我们巴不得能飞到用户的电脑前,我们能熟练的在控制台中查找到 bug 出现的原因,但用户距离我们十万八千里,是否就无能为力了呢?
对 bug 进行分类
bug 可以简单分为以下几类:
- JS 异常
- 静态资源加载异常
- 网络请求异常
捕获 bug
捕获 js 异常
1 | window.onerror = (msg, url, line, col, err) => { |
捕获静态资源加载异常
1 | window.addEventListener('error', function (event) { |
捕获网络请求异常
1 | window.XMLHttpRequest = function () { |
直接看到用户的操作
有些错误可能是一系列操作之后才产生的,怎么能够直观的看到呢?
这里有一个录制鼠标事件的库,可以通过这个库,对用户的操作进行录制,之后在同样的网页中重放即可。