CSS 和 JavaScript 的壓縮已經很成熟,各大網站都在使用。HTML 的壓縮(特指去除空白字符和註釋),除了 Google 等搜索頁面,在其它網頁上基本見不到蹤跡。
原因很簡單:
- HTML 文檔中,多個空白字符等價爲一個空白字符。也就是說換行等空白字符的刪除是不安全的,有可能導致部分元素的樣式產生差異。
- HTML 元素中,有一個
pre
, 表示 preformatted text. 裏面的任何空白,都不能被刪除。 - HTML 中有可能有 IE 條件註釋。這些條件註釋是文檔邏輯的一部分,不能被刪除。
只想到以上 3 點,可能還有其它陷進。對於動態頁面來說,HTML 的壓縮有可能還會增加服務器的 CPU 負擔,得不償失。
一般來說,通過 gzip 壓縮已經能達到很好的效果。進一步的壓縮存在陷進,除非能像 Google 一樣充分測試(Google 也僅壓縮了少部分核心服務的頁面),否則不推薦對 HTML 進行壓縮處理。