广州日报
除了大家熟悉的LCP(最大内容绘制)和FID(首次输入延迟), INP(Interaction to Next Paint,交🎆互到下次绘制) 正逐渐成🚀为衡量页面响应能力的关键指标
当一个页面在用户点击后迟⭐迟没有视觉变化,用户会感到卡顿甚🍀至误以为页面无响应,进而选择关闭页面
渲染被其他任务阻塞: 浏览器无法立即进行❤️下一次绘制,可能因为🎊正在解析大型样式表、执行同步脚本或处理未完成的后台任务
这种“交互延迟”会直☀️接导致 跳出率上升 和 🌺页面停留时间下降
常见的优化思⭐路包括: 将耗时超过50毫秒的Jav📢aScript任务拆分为多个小任务,使用 setTimeout 、 requestAnimationFrame 或 scheduler
对于第三方分析脚本、地图组件或广告模块,使用 defer 或 async 加载,🎯或者考虑在用户交互完成后再延迟加载
以下三类问题在日常监测中最常见: 主线程任务过长: JavaScr🌺ipt脚本执行时间超过50毫秒,尤其是页面加💡载初期执行的大量第三方脚本或复杂动画
交互事件的处理程序过于复杂: 🎵例如点击一个按钮后,触发多个网络请求、大量DOM操作或重排重绘
建议将INP纳入CI/CD流水线,每次发布前做一次性能回归测试
百度通过收集真🎉实的用户浏览数据,将❤️这类交互体验指标纳入排名考量
分解并优化长任务 长任务(Long Tasks)是INP的元凶
你可以: 避▶️免在 click 事件中直接发起复杂的计🔑算或同步网络请求,建议将数据提取与UI更新分离
使用工具测量当前的INP 在动🎵手☀️优化前,首先要获得基准数据
你可以使用 百度统计中的“网站速度”模块 、百度搜索资源平台的“体验提升”工具包,或者Chrome开发者工具中的Performance面板
使用 防抖 或 节流 技💫术控制高频事件(如滚动、拖拽)的触发频率