我们很高兴为新的 待定响应速度指标“Interaction to Next Paint (INP)”提供第一轮工具支持。如需了解该指标本身,请查看官方 INP 指标指南。
建议的衡量方式
衡量 INP 的目的是了解网页对用户输入的响应速度。获取真实数据的唯一方法是,使用实测数据衡量网页对访问您网站的真实用户的响应速度。
在实验室中衡量 INP 有助于更好地了解事件时间安排以及需要进行优化的位置。实验室工具不会自动与网页互动,因此它们在衡量时需要手动输入,或者需要使用 Puppeteer 等自动化工具编写脚本。从典型的用户体验历程中识别出关键互动后,可以尝试这些互动来识别问题,也可以编写脚本并将其放入持续集成测试中以防止回归。
了解真实用户的体验(实测数据)
访问 PageSpeed Insights
PageSpeed Insights 会从 Chrome 用户体验 (CrUX) 报告 API 中提取实测数据,并提供网页和来源在过去 28 天内的性能快照。此数据现在包含 INP:
前往 PageSpeed Insights 试用。
从实测数据中收集您自己的 INP 值
如果您想自行收集网站的 INP 数据,最简单的方法是使用 web-vitals 库,该库的 Beta 版现已全面支持 INP。
import {onINP} from 'web-vitals';
onINP(({value}) => {
// Log the value to the console, or send it to your analytics provider.
console.log(value);
});
详细了解 web-vitals以及如何在开发者工具控制台中进行衡量。
Web Vitals Chrome 扩展程序
Web Vitals 扩展程序既可提供用户网页体验的概览(来自 CrUX API),也可提供当前访问网页的 CWV 和关键指标的实时值。
为 Chrome 安装 Web Vitals 扩展程序。
诊断性能问题(实验室数据)
使用 Lighthouse 用户流
借助开发者工具中 Lighthouse 面板的新时间跨度模式,您可以启动 Lighthouse,以您希望的方式与测试网页互动,然后获取该时间段内发生的情况的报告。此报告现在包含 INP 和审核,有助于诊断任何响应速度问题。
可以使用 Lighthouse 用户流 自动执行同一系列互动。从 Lighthouse 9.6 开始,用户流中提供 INP。
工具可用性详情
- Chrome 用户体验报告 (CrUX)
- BigQuery:INP 可用作
interaction_to_next_paint - CrUX API:INP 可用作
interaction_to_next_paint - CrUX 信息中心:包含 INP 数据
- BigQuery:INP 可用作
- PageSpeed Insights
- pagespeed.web.dev:来自 CrUX API 的网页级和来源级 INP 实测数据以“Interaction to Next Paint”的形式呈现
- PSI API:INP 可用作
INTERACTION_TO_NEXT_PAINT_MS
web-vitalsJS 库web-vitals包含 INP 支持
- Web Vitals Chrome 扩展程序
- 包含本地 INP 衡量和 INP 实测数据(如果 CrUX API 提供)
- Lighthouse
- 开发者工具中的 Lighthouse 面板:INP 衡量可在 Chrome Canary 版 (104) 的“时间段”模式下使用
- Lighthouse npm 模块:INP 衡量可在时间段内使用(使用 Puppeteer 进行合成输入)
未来工作和反馈请求
未来,Chrome 工具团队将继续投入资源,为 INP 提供调试功能和优化建议。
如果您对任何方面有反馈,例如指标的实用性或衡量的简易性,请将其提交到 web-vitals-feedback Google 群组。