全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-17 6 分钟 ✍️ juanwangdev

HTML 减少 HTTP 请求优化

每个 HTTP 请求都有 DNS 查询、TCP 连接、TLS 握手开销,减少请求是性能优化基础。

内联资源

内联小 CSS

HTML
<head>
  <style>
    /* 内联关键 CSS,避免额外请求 */
    body { margin: 0; font-family: system-ui; }
    .container { max-width: 1200px; margin: 0 auto; }
  </style>
</head>

内联小 JavaScript

HTML
<!-- 内联关键脚本 -->
<script>
  document.documentElement.classList.add('js');
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/sw.js');
  }
</script>

内联小图片

HTML
<!-- Base64 内联小图标 -->
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PC9zdmc+" alt="icon">

<!-- SVG 直接内联 -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M12 2L2 22h20L12 2z"/>
</svg>

CSS 精灵图

将多个小图标合并为一张图片,减少图片请求数。

CSS
.icon {
  background-image: url('sprite.png');
  background-repeat: no-repeat;
}

.icon-home { background-position: 0 0; width: 24px; height: 24px; }
.icon-user { background-position: -24px 0; width: 24px; height: 24px; }
.icon-cart { background-position: -48px 0; width: 24px; height: 24px; }

资源合并

CSS 合并

HTML
<!-- ❌ 多个请求 -->
<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="components.css">

<!-- ✅ 单个请求 -->
<link rel="stylesheet" href="bundle.css">

JavaScript 合并

HTML
<!-- ❌ 多个请求 -->
<script src="utils.js"></script>
<script src="components.js"></script>
<script src="app.js"></script>

<!-- ✅ 单个请求 -->
<script src="bundle.js"></script>

HTTP/2 多路复用

HTTP/2 支持单连接多请求,合并策略需调整。

HTML
<!-- HTTP/2 下可保持模块化 -->
<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="components.css">

HTTP/2 下,细粒度文件反而利于缓存,但总数仍需控制。

内联阈值建议

资源类型建议内联大小说明
CSS< 14KB关键样式优先
JavaScript< 1KB核心初始化代码
图片< 4KB小图标、占位图
SVG优先内联无额外请求开销

注意事项

避免内联过大资源,会增加 HTML 体积且无法缓存。

CSS 精灵图适合小图标,不适合频繁更新的场景。

HTTP/2 下过度合并反而降低缓存效率。

使用构建工具自动处理合并和内联。

要点总结

  • 内联小资源减少请求开销
  • CSS 精灵图合并多个小图标
  • 合理使用 Base64 内联小图片
  • HTTP/2 下平衡合并与模块化
  • 控制内联资源体积,避免增大 HTML

📝 发现内容有误?点击此处直接编辑

← 上一篇 HTML 关键渲染路径优化
下一篇 → HTML 异步加载资源优化
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库