我在做前端性能监控,想统计用户看到首屏内容的时间,但发现 performance.timing 里的 loadEventEnd 和 domContentLoadedEventEnd 都不太准,有时候 DOM 加载完但图片还没出来,用户其实还没看到内容。有没有更靠谱的方法?
我试过用 performance.getEntriesByType('navigation')[0] 拿 timing 数据,也试过监听 load 事件,但都不太符合“用户实际看到首屏”的体验。是不是得结合 FP、FCP 这些指标?具体该怎么实现呢?
你说的思路是对的,得结合 FCP 和 LCP 这两个指标。用 Performance Observer 来监听最稳:
LCP 基本上就是用户看到主要内容的时间点了,比单纯等 load 事件靠谱得多。
如果你首屏有张大图特别关键,还想更精确点,可以单独监控那张图的加载时间:
在 WordPress 里的话,你可以在主题的 functions.php 里挂个钩子,把这段监控代码 enqueue 进去就行。搞个简单的插件把这段 JS 注入到 footer也成。
总的来说,LCP 是目前最接近"首屏可见"体验的指标,比以前那些 domContentLoaded 靠谱多了。