最后更新于4年前
性能指标收集注意项:
保证数据的准确性
尽量不影响应用的性能
window.addEventListener('unload', function () { // Collect Run data like before let rumData = new FormData() rumData.append("entries", JSON.stringify(performance.getEntries()) }, false)
window.onerror 函数只有在返回 true 的时候,异常才不会向上抛出,否则即使是知道异常的发生控制台还是会显示 Uncaught Error: xxxxx。
window.onerror 是无法捕获到网络异常的错误。由于网络请求异常不会事件冒泡。
监听 unhandledrejection 事件
window.addEventListener("unhandledrejection", function (event) { console.warn("WARNING: Unhandled promise rejection. Shame on you! Reason: " + event.reason); });
<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 捕获请求错误