总阻塞时间 (TBT) 是 Lighthouse 报告的性能部分跟踪的指标之一。每个指标都会捕获网页加载速度的某个方面。
Lighthouse 报告会显示以毫秒为单位的 TBT:
![Lighthouse 总阻塞时间审核的屏幕截图](https://developer.chrome.google.cn/static/docs/lighthouse/performance/lighthouse-total-blocking-time/image/a-screenshot-the-lightho-78f54ec872364.png?authuser=8&hl=da)
TBT 衡量的内容
TBT 衡量的是网页被禁止响应用户输入(例如鼠标点击、屏幕点按或键盘按下操作)的总时长。总和的计算方法是:将 First Contentful Paint 和 Time to Interactive 之间所有长任务的阻塞部分相加。任何执行时间超过 50 毫秒的任务都是耗时较长的任务。50 毫秒之后的时间属于阻塞部分。例如,如果 Lighthouse 检测到时长为 70 毫秒的任务,则阻塞部分将为 20 毫秒。
Lighthouse 如何确定您的 TBT 得分
TBT 得分是网页的 TBT 时间与在移动设备上加载时数以百万计的实际网站数的比值。如需了解如何设置 Lighthouse 得分阈值,请参阅如何确定指标得分。
下表展示了如何解读 TBT 分数:
TBT 时间 (以毫秒为单位) |
颜色编码 |
---|---|
0 - 200 | 绿色(快速) |
200-600 | 橙色(中等) |
600 多个 | 红色(慢) |
如何提高 TBT 分数
如需了解如何使用 Chrome 开发者工具的“性能”面板诊断长时间运行的任务的根本原因,请参阅导致任务过长的原因是什么?。
通常,造成任务耗时较长的最常见的原因包括:
- 不必要的 JavaScript 加载、解析或执行。分析“Performance”面板中的代码时,您可能会发现主线程执行的工作并不是加载页面所必需的。通过代码拆分减少 JavaScript 载荷、移除未使用的代码或高效加载第三方 JavaScript,应该可以提高 TBT 得分。
- 低效的 JavaScript 语句。例如,分析“性能”面板中的代码后,假设您看到对
document.querySelectorAll('a')
的调用会返回 2000 个节点。重构代码以使用仅返回 10 个节点的更具体的选择器,应该可以提高 TBT 分数。
如何提高总体效果得分
除非您有明确的理由关注某个特定指标,否则通常最好专注于提高总体性能得分。
使用 Lighthouse 报告的优化建议部分可确定哪些改进能给您的网页带来最大的价值。优化建议越重要,对性能得分的影响就越大。例如,下面的 Lighthouse 屏幕截图显示消除阻塞渲染的资源将实现最大的改进:
![Lighthouse:“优化建议”部分](https://developer.chrome.google.cn/static/docs/lighthouse/performance/interactive/image/lighthouse-opportunities-ec2197d9dce25_1920.png?authuser=8&hl=da)
请参阅“性能审核”着陆页,了解如何解决 Lighthouse 报告中发现的机会。