异常收集
针对错误的捕获,使用window.onerror或者addEventListener(‘error’)。
window.onerror = function(message, source, lineno, colno, error) {};
浏览器兼容性
| Browser | Message & Url | Line numbers | Column numbers | Stack trace |
|---|---|---|---|---|
| Chrome | ✓ | ✓ | ✓ | ✓ |
| Firefox | ✓ | ✓ | ✓ | ✓ |
| Edge | ✓ | ✓ | ✓ | ✓ |
| IE11 | ✓ | ✓ | ✓ | ✓ |
| IE10 | ✓ | ✓ | ✓ | ✓ |
| IE9 | ✓ | ✓ | ||
| IE8 | ✓ | ✓ | ||
| Safari 6+ | ✓ | ✓ | ✓ | ✓ |
| iOS Safari 6+ | ✓ | ✓ | ✓ | ✓ |
| Opera 15+ | ✓ | ✓ | ✓ | ✓ |
| Android Browser 4.4 | ✓ | ✓ | ✓ | ✓ |
| Android Browser 4 – 4.3 | ✓ | ✓ |
针对资源异常的捕获
因为事件发生在捕获而不是冒泡阶段,所以不支持ie8。
1 | document.addEventListener( |
节流
防止过多的对服务器接口发起请求,主要通过两个方面实现节流。
- 客户端缓存异常队列,每隔一段时间,检查异常队列,批量上传。
- 对异常进行重复检测,如果是一致的忽略。
针对sourcemap的处理
可以在每次部署的时候把sourcemap文件传到服务器目录,在捕获错误后,到后端通过soucemap还原出错误代码。