Back

从 Chrome 网络面板中可以学到什么

从 Chrome 网络面板中可以学到什么

Chrome 网络面板揭示了为什么你的网站感觉很慢。虽然你的代码可能很完美,但一张过大的图片或一个缓慢的 API 端点就能破坏用户体验。理解这个面板能让你从猜测性能问题转变为精准诊断问题。

核心要点

  • 瀑布图可视化请求时序,颜色编码关键性能数据
  • TTFB 超过 200ms 表明存在服务器端瓶颈,需要后端优化
  • 网络限速模拟真实世界条件,揭示隐藏的性能问题
  • 过滤查询和 HAR 导出支持复杂的调试和性能分析

理解网络瀑布图分析

Chrome DevTools 网络面板中的瀑布图讲述了页面加载每一毫秒的故事。每个横向条形代表一个请求从发起到完成的过程。这些颜色不是装饰性的——它们编码了关键的时序信息。

绿色部分显示等待时间(TTFB - 首字节时间),表示服务器响应所需的时间。蓝色代表内容下载时间。当绿色占主导时,服务器是瓶颈。当蓝色占主导时,你面临的是大型资源或带宽限制问题。

现代浏览器同时发起多个请求,在瀑布图中形成并行的条形。HTTP/2 连接放大了这种并行化能力,允许在单个连接上处理数十个请求。注意阶梯状模式——这些揭示了依赖链,其中一个资源阻塞另一个资源,通常表明有机会重构加载策略。

区分 TTFB 与下载时间瓶颈

Web 性能调试始于识别缓慢是来自服务器还是网络。点击任何请求并检查 Timing 标签。如果”Waiting (TTFB)“超过 200ms,请检查后端——数据库查询、API 逻辑或服务器配置可能需要优化。

较长的下载时间指向不同的解决方案。一个 5MB 的 JavaScript 包可能在光纤连接上瞬间加载,但在移动网络上却很慢。Size 列显示传输大小(压缩后)和实际大小(未压缩)。当这两个数字差异显著时,说明你成功使用了压缩。当它们相似时,启用 gzip 或 Brotli 可以显著提升性能。

连接开销在时序分解中显示为 DNS Lookup、Initial Connection 和 SSL 协商。首次访问者会经历所有三个阶段;回访者通常通过连接复用跳过它们。对同一域名的多个请求应该共享连接——如果没有,你就在浪费往返时间。

使用网络限速进行真实世界测试

你的开发机器的千兆连接掩盖了性能问题。Chrome 中的网络限速模拟真实条件。从限速下拉菜单中选择”Slow 3G”或”Fast 4G”,以移动用户的方式体验你的网站。

限速揭示资源竞争。当带宽变得稀缺时,Priority 列变得至关重要。浏览器为阻塞渲染的资源分配 Highest 优先级,为可见图片分配 High,为首屏以下内容分配 Low。优先级错位——比如追踪像素具有 High 优先级——会浪费宝贵的早期带宽。

自定义限速配置文件让你匹配特定场景。配置下载/上传速度和延迟,以模拟用户的中位连接质量,而不是最佳情况。

调试 HTTP 请求和 API 响应

Chrome DevTools 网络面板在调试 HTTP 请求方面表现出色。失败的请求以红色显示,立即引起注意。点击一个请求检查标头,揭示 CORS 错误、身份验证失败或格式错误的请求。

Response 标签显示实际的服务器输出——当 API 在响应体中返回错误消息但状态码却是 200 时,这非常有价值。Preview 标签以可读的、可折叠的树形结构渲染 JSON 响应,使复杂的 API 响应易于浏览。

请求发起者揭示因果关系。将鼠标悬停在 Initiator 列上可以看到完整的调用栈。这将问题追溯到源头——那个 404 错误可能源自第三方脚本,而不是你的代码。

过滤和隔离特定资源

Filter 输入框接受复杂的查询。输入 larger-than:100k 查找臃肿的资源。使用 -domain:yourdomain.com 隔离第三方请求。正则表达式如 /\.(jpg|png|gif)/ 可以分组相关资源。

Fetch/XHR 过滤将 API 调用与资源加载隔离开来,这在调试应用逻辑与性能问题时至关重要。搜索功能(Cmd+F)在所有响应体和标头中搜索——非常适合查找敏感数据可能泄露的位置或追踪特定的 API 响应。

实用性能洞察

Coverage 标签(通过 DevTools 菜单访问)将网络数据与代码使用统计叠加显示。那个 2MB 的 JavaScript 包可能在初始加载时只使用了 30% 的代码——这是实施代码拆分的明确信号。

HAR(HTTP Archive)导出捕获整个网络会话,用于在 WebPageTest 等专业工具中分析或与团队成员共享。右键点击任何请求并选择”Copy as cURL”,可在终端或 Postman 中重现确切的请求。

结论

Chrome 网络面板将神秘的性能问题转化为可操作的洞察。掌握瀑布图,理解时序分解,并使用限速通过用户的连接查看你的网站。这些技能将希望网站快速的开发者与确切知道网站为何快速(或不快速)的开发者区分开来。

常见问题

传输大小显示通过网络发送的压缩数据,而资源大小是未压缩的文件大小。两者差异较大表明压缩效果良好。如果数值相似,说明你应该在服务器上启用 gzip 或 Brotli 压缩。

在过滤栏中使用 -domain:yourdomain.com 隔离第三方请求。按时间或大小排序以找出最严重的问题。查看瀑布图,看这些脚本是否阻塞了关键资源的加载。

零毫秒 TTFB 通常意味着资源是从缓存提供的,可能是浏览器缓存或 service worker。检查 Size 列中的磁盘缓存或内存缓存指示器,以确认资源没有从网络获取。

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay