真实JS错误率需精准计算:分母用document.readyState==='complete'后埋点的PV,分子合并onerror、unhandledrejection、document.error三源去重计数,并修复CORS缺失导致的“Script error.”,同时过滤爬虫和无效会话。
前端错误率监控不能只靠,它漏掉的错误比捕获到的还多——Promise 拒绝、资源加载失败、跨域脚本错误、异步回调错误全都不报。直接上线单点监听等于裸奔。
怎么算出真实的 JS 错误率
错误率 =
,但关键在分子分母都得准:
分母 PV 必须是「用户真实打开页面」的行为,不能用 SPA 路由跳转次数替代;推荐在
后埋点,或监听
事件
分子要合并所有错误源:
+
+
,三者去重后计数(按
或
做哈希判重)
避免重复上报:同一错误在单页内多次触发(如滚动中反复加载失败),需加 5 秒防抖或按错误指纹限频
为什么跨域脚本错误总是显示 Script error.
这是浏览器安全策略导致的堆栈丢失,不是你代码写错了。只要满足任一条件,
就只能拿到模糊信息:
标签没加
属性
服务端响应头没返回
(哪怕只是
)
本地用
协议打开,
直接失效(必须起本地 HTTP 服务)
修复方式就一条:CDN 或静态资源服务器配好 CORS 头,并在 HTML 中显式写
。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
如何避免错误率被无效请求拉高
大量爬虫、插件注入、恶意刷量会污染错误率数据,必须过滤:
排除已知爬虫 UA:含
、
、
、
的请求头
过滤无交互的“秒开秒关”页面:停留时间 click/
/
行为的 PV 不计入分母
屏蔽低版本 IE(如 IE10 及以下):它们的错误行为不可控,单独统计,不参与主错误率计算
对重复错误做聚合:同一 URL + 同一错误类型 + 同一行号,在 1 分钟内只计 1 次
真正难的不是采集,是区分哪些错误该告警、哪些该忽略。比如
在 Chrome 中高频出现但不影响功能,而
出现在核心业务链路里就必须立刻响应——错误率数字背后,永远得有人定义业务上下文。
window.onerror(上报的 JS 错误数 / 页面 PV 数)× 100%document.readyState === 'complete'loadwindow.onerrorwindow.addEventListener('unhandledrejection')document.addEventListener('error', ..., true)error.stacke.reason?.stackwindow.onerrorcrossoriginAccess-Control-Allow-Origin*file://crossoriginHeadlessChromePhantomJSbotcrawlerscrollinputResizeObserver loop completedCannot read property 'xxx' of null