澎湃新闻
优先使用百度官方的⭐异步加载方案,避✨免同步阻塞
百度搜索的移动端流量占比极高,💎移动设备CPU性能较弱,FID与TBT更容易超标
常见导致FID与TBT偏高的原因 要消除这些性能瓶颈,首先需要了解常见的诱因: 未优化的JavaScript代码: 体积过大的JS文🍀件、未拆分的第三方脚本、长时间运行的任务都会阻塞主线程
缺乏代码拆分与懒加载: 😎一次性加载🎉所有脚本,而不是按需加载
这样主线程不会被阻塞,用户点击或滚动页面时能够即时得到响应,从而显著降低FID
拆分并延迟非关键JavaScript 使用 代码拆分 (Code Splitting)技术,将首屏渲染所需的代码与后续交互代码分离
压缩与缓存✨静态资源 虽🎆然压缩本身不直接降低TBT,但更小的JS与CSS文件能缩短下载与解析时间,间接减少主线程的忙碌时长
过多的CSS与字体🎉文件: 同步加载的大型样式表和自定义字体可能延迟交互响应
优化第三方脚本的加载时机 许多网站因为集成了百度联盟广告或分享按钮而导致交互延迟
配合 HTTP缓存 或 S🎵ervice Worker 缓存策略,在重复访问时可以避免重新执行编译步骤
通过 async 或 defer 属性加载非关键脚本,确保主线程不会被一次性过重的任务阻塞
定期审计并移除不再🚀使用或加载过✅慢的第三方插件
其中, 首次输入延迟(FID) 和 总阻塞时间(TBT) 是衡量页面交互性的核心指标
实际上,样式💎🎵计算和布局也可能在主线程上产生长任务
百度在算法中越来越重视这些指标,因为它们直接决定了用户是否愿意继续浏览页面
第三方插件与广告脚本: 分析工具、社交分享按钮、广告代码中常包含🔮高耗时的任务
通过将大段JS逻辑拆分成多个小任务(例如使用 setTimeout 或 requestIdleCallback 分批执行),可以让浏览器在每个小⭐任务之间有机会处理用户交互,从而平滑降低总阻塞时间
一般建议: 对第三方脚本使用 懒加载 ,🚀例如在用户即将滚动到相关区域时再加载