HTML中普通空格不影响加载速度,解析器会自动合并空白字符;真正拖慢性能的是冗余缩进、未压缩脚本、滥用 及服务端模板低效输出。
HTML 解析器会自动合并连续的空白字符(空格、制表符、换行),只要不是在 、 或设置了 white-space: pre 的元素里,多个空格和换行都会被当作一个空格处理。这个过程发生在解析阶段,开销极小,对加载时间(TTFB、DOMContentLoaded)没有可观测影响。
所谓“空格影响性能”,通常不是空格本身,而是它背后隐藏的冗余结构或错误习惯:
大量无意义的缩进和换行出现在内联 标签内写了很多空行 + 注释 + 缩进 → 实际 JS 代码未压缩,阻碍解析与执行 对齐内容)→ DOM 节点膨胀,重排重绘成本上升 和 的区别与风险普通空格(U+0020)会被折叠;而 (U+00A0)是不换行空格,强制保留,且每个都算一个独立文本节点:
Hello World
上面这段会产生 3 个 文本节点,比写 Hello World 更重。更糟的是,如果误写成  b; 这类拼错实体,浏览器会原样显示字符串,还可能触发 HTML 解析回退(minor cost,但不该依赖)。
与其纠结空格,不如检查这些真实瓶颈:
async 或 defer
Content-Encoding,导致压缩失效空格不是性能敌人,不可见的冗余结构和缺乏构建优化才是。