很多监控 sdk 使用的 domcontentloaded 等传统事件对 spa 来说根本没意义,又不是后端直出。
用 lighthouse 等测量 fcp 又有些不稳定,cli 和 chrome 插件两种方式差别很大,我看 issue 中维护者有提到当浏览器刚启动时会有一些准备工作,导致 lighthouse 每次新启动一个浏览器实例再测试网站有很多额外的消耗。
后来用 puppeteer 的 waitForSelector 监测内容区块,发现第一次访问效果会很差,后面几次降低,即使开启隐身模式禁用缓存也是如此,我怀疑 chrome 第一次访问做了一些预热工作,比如 tcp 连接、各层面的 cache。
所以白屏时间到底应该怎么算,才能得到一个稳定的能够代表用户真实、随机访问下的指标?