面试知识归纳:2.10错误监控
错误监控
如何保证产品质量?
前端错误的分类
- 即时运行错误:代码错误
- 资源加载错误
错误的捕获方式
捕获即时运行错误:
- try catch
- window.onerror
(DOM0) - window.addEventListener('error', callback)
(DOM2)
捕获资源加载错误:(资源加载错误不会冒泡)
- object.onerror
- performance.getEntries() 所有已加载资源的加载时长,间接拿到没拿到资源的错误
- Error事件捕获
延伸:跨域的JS运行错误可以捕获嘛。错误提示是什么,应该怎么处理?
跨域错误可以捕获到。错误提示为 script error,处理方式如下:
- 在script标签增加
crossorigin属性 - 设置JS资源响应头
Access-Control-Allow-Origin: *
上报错误的基本原理
- 采用Ajax通信的方式上报(能做,但错误监控不这样做)
- 利用Image对象上报
js
(new Image()).src = 'http://xxx.com/test?error=oops'