Lazy loaded image
JS逆向分析:字节的火山引擎如何做前端白屏监控
字数 594阅读时长 2 分钟
2025-1-3
2025-4-8
type
status
date
slug
summary
tags
category
icon
password
上次编辑时间
Apr 8, 2025 03:27 PM
前不久调研了前端监控的一些产品,本文分析火山引擎web-pro监控的白屏原理,npm链接:@apmplus/web - npm
首先根据package.json找到入口文件,随便找一个js格式化网站,把压缩后的sdk格式化
notion image
notion image
代码里面blankScreen就是白屏分析的意思,可以找到这样的调用关系
最重要的就是measure函数,作用是判断是不是白屏,screenshot则是在白屏后做页面的截图
notion image
notion image
notion image
火山做白屏监控的方式是使用预置的算法来计算页面的得分,小于分数阈值则认为是白屏。
notion image
分析这个measure函数,可以得到以下信息:
检测到白屏后,采集js错误、请求异常、资源错误的信息
notion image
同时使用screenshot函数来做页面的截图,截图用的是html2canvas库
notion image
notion image
以上就是火山做白屏监控的原理了,使用dom节点的深度和可见性计算页面分数的方式,还是比较巧妙的。
上一篇
Flex布局中使用margin:auto实现居中的进阶技巧
下一篇
微信小程序开发踩坑记录

评论
Loading...