在 StackOverflow 上面有一些討論(例如這篇)是在問 HTML 檔案應不應該進行 minify 的動作;有一個常被提到的論點是,由於現在的網站伺服器一般都會用 gzip 壓縮格式進行傳輸,而 gzip 省下的大小遠比任何 minify 的效果都還要大,所以相對來說 minify 顯得意義不大。
這點確實是這樣沒錯,不過我不禁要問,那先 minify 之後再一樣用 gzip 傳輸不是無論如何都會更小嗎?問題就在於到底差別大不大?在我自己的使用情境中,我的網頁是靜態的 HTML 檔案,而自動 minify 再上傳對我來說也並不麻煩(gulp-html-minifier-terser 很好用),所以我唯一的問題就只是到底這樣做有沒有實質意義。如果只差個幾個 byte,那大概就算了。
我實際用我的網頁來作實驗。實驗結果的數字比較如下:
未 minify | 經過 minify | 改進 | |
---|---|---|---|
原始大小 | 6731 | 5888 | 14.3% |
gzip 傳輸大小 | 2688 | 2262 | 18.8% |
改進 | 250.4% | 260.3% | 297.5% |
答案很明顯:其實 minify 真的還是有差,毋庸置疑。所以基本上我還是會選擇對 HTML 做 minify 的動作。
不過我覺得在部署的流程之中有一個 minify 的步驟有一個更重大的好處是在於可以把所謂的「原始碼版本 HTML」跟發行版本兩者根本地區格開來,如此一來我們就可以在原始版本之中任意地加上註解、而不用煩惱這些註解會無謂增加檔案大小。
留言