spa 应用白屏时间有什么好的测量方法?

2020-02-26 14:56:21 +08:00
 vevlins
  1. 很多监控 sdk 使用的 domcontentloaded 等传统事件对 spa 来说根本没意义,又不是后端直出。

  2. 用 lighthouse 等测量 fcp 又有些不稳定,cli 和 chrome 插件两种方式差别很大,我看 issue 中维护者有提到当浏览器刚启动时会有一些准备工作,导致 lighthouse 每次新启动一个浏览器实例再测试网站有很多额外的消耗。

  3. 后来用 puppeteer 的 waitForSelector 监测内容区块,发现第一次访问效果会很差,后面几次降低,即使开启隐身模式禁用缓存也是如此,我怀疑 chrome 第一次访问做了一些预热工作,比如 tcp 连接、各层面的 cache。

所以白屏时间到底应该怎么算,才能得到一个稳定的能够代表用户真实、随机访问下的指标?

2703 次点击
所在节点    前端优化
2 条回复
momocraft
2020-02-26 15:08:10 +08:00
可以测量 PerformanceTiming 的 navigationStart 到 render 完成的时间

另外预热,cache 这些东西,用真正的用户设备测一样会发生。
liushuigs
2022-06-26 22:27:19 +08:00
最准确地是自己打断点日志,统计各日志之间的时间差,得到 FCP 。想拿到域名解析、首页资源加载等时间,则需要供用 window.performance 接口。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX