上报

性能指标收集注意项:
保证数据的准确性
尽量不影响应用的性能
上报方式
window.addEventListener('unload', function () {
// Collect Run data like before
let rumData = new FormData()
rumData.append("entries", JSON.stringify(performance.getEntries())
}, false)
错误监听
利用 window.onerror 监听 js error
window.onerror 函数只有在返回 true 的时候,异常才不会向上抛出,否则即使是知道异常的发生控制台还是会显示 Uncaught Error: xxxxx。
window.onerror 是无法捕获到网络异常的错误。由于网络请求异常不会事件冒泡。
promise reject 的异常
监听 unhandledrejection 事件
window.addEventListener("unhandledrejection", function (event) {
console.warn("WARNING: Unhandled promise rejection. Shame on you! Reason: "
+ event.reason);
});
iframe 异常
同域
<iframe src="./iframe.html" frameborder="0"></iframe>
<script>
window.frames[0].onerror = function (msg, url, row, col, error) {
console.log('我知道 iframe 的错误了,也知道错误信息');
console.log({
msg, url, row, col, error
})
return true;
};
</script>
非同域
涉及使用 postMessage
资源加载失败
window.addEventListener('error')
网络请求失败
重写 window.XMLHttpRequest 和 window.fetch 捕获请求错误
window.console.error
最后更新于
这有帮助吗?