HTML 词条目录
前端Wiki/词条/HTML 渲染过程

HTML 渲染过程

定义从一段标记文本到屏幕上像素的全部步骤,前端性能优化的地图

浏览器拿 HTML 的过程大致分五步:解析标签构建 DOM 树,解析 CSS 构建 CSSOM 树,两者合成渲染树(隐藏元素被剔除),然后布局计算每个节点的几何位置,最后绘制与合成出画面。理解这条流水线就能理解很多性能常识:改颜色只触发重绘,改尺寸位置会触发更贵的回流,JS 直接读写 offsetWidth 会强制同步布局。

这条链路上的几个角色值得记住:script 默认会阻塞解析(遇到就停下来等下载执行),所以放底部或加 defer/async;CSS 解析与 DOM 解析可并行但会阻塞渲染;img 不阻塞但加载完会回流。所以经典策略是关键 CSS 内联、非关键 CSS 异步、图片设宽高防抖动——每个都对应渲染流水线上的一个具体环节。

HTML
<style>
  .flow { display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
          padding: 12px; border: 1px solid #4a9eff; border-radius: 8px;
          font-size: 13px; }
  .step { background: #4a9eff; color: #fff; border-radius: 6px;
          padding: 5px 10px; }
  .arrow { color: #e78a3e; font-weight: bold; }
</style>
<div class="flow">
  <span class="step">解析 HTML</span><span class="arrow">→</span>
  <span class="step">构建 DOM 树</span><span class="arrow">→</span>
  <span class="step">解析 CSS</span><span class="arrow">→</span>
  <span class="step">CSSOM 树</span><span class="arrow">→</span>
  <span class="step">渲染树</span><span class="arrow">→</span>
  <span class="step">布局</span><span class="arrow">→</span>
  <span class="step">绘制合成</span>
</div>
<p style="font-size:13px">脚本放底部或加 defer 可减少对这条流水线的阻塞。</p>
⚠ 常见误区
🔗 相关词条网页元素
← 返回来源章节网页