CSS 和 JavaScript 的压缩已经很成熟,各大网站都在使用。HTML 的压缩(特指去除空白字符和注释),除了 Google 等搜索页面,在其它网页上基本见不到踪迹。
原因很简单:
- HTML 文档中,多个空白字符等价为一个空白字符。也就是说换行等空白字符的删除是不安全的,有可能导致部分元素的样式产生差异。
- HTML 元素中,有一个
pre
, 表示 preformatted text. 里面的任何空白,都不能被删除。 - HTML 中有可能有 IE 条件注释。这些条件注释是文档逻辑的一部分,不能被删除。
只想到以上 3 点,可能还有其它陷进。对于动态页面来说,HTML 的压缩有可能还会增加服务器的 CPU 负担,得不偿失。
一般来说,通过 gzip 压缩已经能达到很好的效果。进一步的压缩存在陷进,除非能像 Google 一样充分测试(Google 也仅压缩了少部分核心服务的页面),否则不推荐对 HTML 进行压缩处理。