JavaScript错误监控核心是捕获运行时异常与资源加载失败并上报,需通过window.onerror、addEventListener('error')、unhandledrejection监听,配合主动上报、资源监控、轻量异步容错策略,确保精准定位问题。
JavaScript 错误监控的核心是捕获运行时异常和资源加载失败,并把关键信息上报到服务端。前端埋点不是单纯加代码,而是建立一套可维护、低侵入、能定位问题的采集机制。
这是最基础也最关键的埋点入口。`window.onerror` 能捕获 JS 运行时错误(同步)、脚本加载失败;`addEventListener(
'error')` 补充捕获图片、CSS、iframe 等资源加载失败。
window.addEventListener('unhandledrejection', ...)
业务代码中难免有预期外逻辑(比如接口返回异常结构、用户输入非法),这时要主动调用埋点方法,而不是等崩溃。
setTimeout(() => report(...), 0) 避免阻塞主流程404 脚本、跨域 CSS、超时图片都会导致功能异常,但不会触发 JS 报错,需单独关注。
onerror 回调,记录资源 URL 和触发位置PerformanceObserver 监听 longtask、largest-contentful-paint 超时,识别卡顿场景上报行为必须轻量、异步、可降级,否则会引发负向循环。
navigator.sendBeacon() 发送,确保页面卸载时也能发出(关闭标签、跳转前)基本上就这些。不需要一上来就上 SDK,从 onerror + 主动上报 + 资源监听三个点切入,再逐步加采样、聚合、SourceMap 解析,就能覆盖大部分线上问题。关键是把“谁在哪干了什么出了什么错”说清楚,而不是堆功能。