在 Chrome DevTools 的 Performance 面板中,传统的火焰图虽然能看到底层的线程活动,但对开发者来说不够直观,排查效率较低。
Core Web Vitals(核心网页指标)是一套标准化的用户体验度量体系。Chrome Performance 面板深度集成了这些指标,它们就像是给浏览器性能做的"体检报告"。在面板顶部的"Web Vitals"时间轴上,直接标注了三个最关键的指标:LCP(最大内容绘制) 、INP/FID(交互延迟) 和 CLS(累积布局偏移) 。
要判断页面是否卡顿,只需看这三个指标的状态和数值:
1. LCP(加载是否卡顿):看颜色与位置
-
指标含义 :LCP 衡量的是用户进入页面后,最大的可见内容(如首屏大图、标题)渲染出来的时间。它反映了页面加载阶段的卡顿感。
-
如何判断 :在顶部的 Web Vitals 时间轴上,找到带有
LCP字样的小竖线。- 看颜色 :如果该标记显示为绿色 ,说明加载很快;如果是黄色 或红色,则说明加载缓慢。
- 看位置 :如果
LCP标记迟迟不出现,或者出现时下方的主线程(Main)已经被黄色的长任务占满,说明 JS 执行阻塞了渲染,导致用户感觉页面一直白屏或卡在加载中。
2. INP(交互是否卡顿):看红三角警告与数值
-
指标含义 :INP(Interaction to Next Paint,2024年起已正式取代 FID)衡量的是用户点击、滑动等操作后,浏览器给出视觉反馈的延迟时间。它直接反映了操作响应阶段的卡顿感。
-
如何判断:INP 是排查"用久必卡"最关键的指标。
- 看红三角 :在带有
INP或Event: click/keydown字样的任务块上方,如果 Chrome 标出了红色的三角形警告标志,这直接意味着该次交互产生了长任务,导致响应延迟。 - 看数值 :查看面板顶部的 INP 评分。如果数值大于 200ms(黄色警告) 或大于 500ms(红色欠佳) ,用户会明显感觉到"点了没反应"或"按钮卡住"。此时顺着该事件往下看 Main 线程,一定能找到耗时的 JS 回调。
- 看红三角 :在带有
3. CLS(视觉是否卡顿):看蓝色布局偏移条
-
指标含义 :CLS 衡量的是页面在生命周期内发生的意外布局偏移(元素突然跳动)的总量。它反映了视觉呈现阶段的卡顿感。
-
如何判断 :在 Web Vitals 时间轴上,如果出现蓝色的短条 ,并带有
CLS或Layout shift标记,说明发生了布局偏移。- 如果这种蓝色短条频繁密集出现,或者单次偏移量很大,用户会觉得页面在"乱跳"、"发疯",严重影响阅读和操作体验。
- 通常是因为图片或广告没有设置固定宽高,导致加载撑开布局。
总结:三步快速排查法
-
打开面板 :按
F12打开开发者工具,切换到Performance面板。 -
录制操作:点击录制按钮,在正常网速下操作页面(包括等待加载、点击按钮、滑动列表)。
-
扫视顶部指标栏:
LCP变红? -> 加载卡。检查是否有庞大的 JS 包阻塞渲染。INP标红三角? -> 操作卡。检查点击事件的回调函数是否执行了复杂计算。CLS频繁出现? -> 视觉卡。检查图片是否预留占位符,动态插入元素是否影响了布局。
通过这套指标,无需深入分析复杂的调用栈,就能快速定量地定位卡顿的具体环节。