浏览器新面试考点:核心网页交互新指标“INP”

本篇译自:web.dev/blog/inp-cw...

2020 年初,Google Chrome 团队推出了"核心 Web 指标",旨在为网页提供一系列质量信号。

Google Chrome 团队即将对核心 Web 指标进行一些更改,以便更好地评估网页的用户体验质量。

在本文中,我们将探讨这一变化以及它带来的影响。

时间线:

曾经,First Input Delay (FID) 是核心 Web 指标中的一项响应性指标,但 FID 已知存在一些限制。

FID 是一种加载响应度指标,其背后的原理是,如果在加载阶段对页面的第一个交互没有明显的输入延迟,那么页面给人的第一印象就是良好的。缺点就是:FID 仅测量第一个交互的输入延迟,而不考虑运行事件处理程序的时间或呈现下一帧的延迟。

经过一年的测试并收集社区反馈后,Chrome 团队决定提升 INP 作为核心 Web 指标中的一项新的响应性指标,并从 2024 年 3 月起取代 FID。

也就是说:2024 年 3 月,INP 取代 FID 后,Search Console 报告将不再显示 FID 指标,并将 INP 用作新的响应性指标。

INP 的计算借助 Event Timing API,通过观察事件处理程序的延迟来确定交互的响应时间。

FID 只关注页面加载阶段的第一个交互,而 INP 考虑了页面的所有交互。它的目标是确保用户发起交互到下一帧渲染的时间尽可能短,以提供良好的用户体验。

具体来说:Google 测试会根据网站上大多数用户互动的持续时间得出一个 INP 分数。分数将为"好"、"需要改进"或"差",具体取决于您的网站在视觉上更新所需的时间。

从这张表中不难看出:

  • INP低于或等于200毫秒: 表明你的页面响应良好,用户体验优秀。
  • INP在200毫秒以上但低于或等于500毫秒: 表明你的页面响应需要改进,存在一定的用户体验问题。
  • INP高于500毫秒: 表明你的页面响应性差,用户体验较差,亟需优化。

谷歌官方强烈建议网站所有者实现良好的核心 Web 指标,确保用户在总体上获得良好的体验。


开发人员如何针对 INP 优化代码?

如果你是开发人员,如果想优化 INP 分数,可以作如下操作。

1. 立即确认用户输入

在优化 INP 分数时,有一件事非常重要,即是:你需要立即向所有用户输入提供视觉反馈;

用户应立即看到他们的输入被识别,并且系统正在对其执行操作。这将明显提高 INP 分数;

以下是一些示例:

  • 如果用户单击某个元素,则应立即显示已单击该元素的内容。
  • 如果用户提交表单,则需要立即显示某些内容以确认,例如消息等。
  • 如果用户点击图像以在灯箱中打开它,则不要只是等待图像加载。相反,应该立即显示演示图像或缩略图。然后,加载图像后,再在窗口中显示它。

特别是如果需要进行繁重的JavaScript处理以响应用户输入,只需确保在开始任务之前更新 UI。之后,可以使用 Web worker 在 setTimeout 回调或单独的线程上执行 CPU 密集型工作,然后最终将结果呈现给用户。

2. 优化浏览器最耗时的环节

我们应该调查浏览器最耗时的环节,然后优化这些部分。

在谷歌浏览器中,当导航到查看 >> 开发人员 >> 开发人员工具 >> 性能时,可以检查阻止下一个绘制的 JavaScript 函数和事件处理程序。

通过这样的办法减少用户 INP 时间。

3. 减少布局

有时,许多 CPU 活动由布局工作组成。

发生这种情况时,应该检查是否可以减少代码中的 relayout 函数。

4. 首先显示首屏内容

如果呈现页面内容很慢,那么 INP 分数很可能会受到影响。

所以,考虑先只显示重要的"首屏"内容,以便更快地体现帧的渲染结果。


说到这里,我们不难发现:成长与发展是学习与工作的主旋律 ~ 最后,自荐一下我和机械工业出版社联合出版的 《程序员成长手记》 一书:全书分为3大模块、8个章节:从入门程序员到程序员自驱成长,回归纸质阅读,相信能给你一个更全局的程序员视野,提供成长帮助。京东搜"程序员成长手记"

OK,以上便是本次分享,希望各位喜欢~ 欢迎点赞、收藏、评论 🤟 我是安东尼 🤠 人气技术博主 💥 坚持千日更文 ✍ 关注我,安东尼陪你一起度过漫长编程岁月

相关推荐
崔庆才丨静觅15 分钟前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60611 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了1 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅1 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅2 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅2 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment2 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅2 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊2 小时前
jwt介绍
前端
爱敲代码的小鱼2 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax