Total Blocking Time (TBT) 是衡量网页交互性能的关键指标,表示主线程被“长任务”(Long Tasks)阻塞的总时间。它直接反映页面从开始加载到完全可交互(如点击、滚动)之间的“卡顿”程度,是用户感知页面流畅性的重要指标。 为什么 TBT 重要?
用户体验:TBT 越长,用户点击按钮或滚动页面时的延迟越明显,可能导致流失。
SEO影响:TBT是Google核心网页指标(Core Web Vitals)的实验室指标(Lab Metric),间接影响搜索排名。
FID关联:TBT与真实用户指标FID(First Input Delay) 强相关,优化TBT可降低用户的实际操作延迟。
典型场景TBT 如何计算?长任务定义:任何持续超过 50ms 的连续主线程任务(如JavaScript执行、样式计算)。 阻塞时间:长任务中超过 50ms 的部分(例如、一个 120ms的任务,其阻塞时间为120ms - 50ms = 70ms)。 TBT 值:统计页面加载过程中,所有长任务的阻塞时间总和。
示例:若存在3个长任务(70ms、80ms、60ms),则 TBT = 70 + 80 + 60 = 210ms。
优化 TBT 的常见方法拆分长任务: 优化JavaScript执行效率: 延迟非关键脚本: 使用 Web Workers: 优化渲染性能: TBT与其它指标的关系FCP/LCP:衡量内容加载速度,而TBT关注主线程阻塞对交互性的影响。 FID:TBT 是实验室指标,FID是真实用户输入延迟的体验指标,两者共同反映交互流畅性。 TTI (Time to Interactive):TBT高通常意味着TTI延迟。
优秀标准测量工具Lighthouse:直接提供TBT数据及优化建议。 Chrome DevTools:通过Performance面板分析长任务。 Web Vitals JavaScript API:实时监控TBT(需结合实验室工具验证)。
网站通过优化TBT可以显著降低页面卡顿、提升用户操作响应速度,从而改善核心用户体验和搜索排名。 |