|
前言:
上一篇隨筆中網友skyASPNET問我如何壓縮HTML,當時回答是推薦他使用gzip,后來想想,要是能把所有的html,jsp(ASPx)在運行前都壓縮成1行未免不是一件好事啊。一般我們啟動gzip都比較少對html啟動gzip,因為現在的html都是動態的,不會使用瀏覽器緩存,而啟用gzip的話每次請求都需要壓縮,會比較消耗服務器資源,對js,css啟動gzip比較好是因為js,css都會使用緩存。我個人覺得的壓縮html的最大好處就是一本萬利,只要寫好了一次,以后所有程序都可以使用,不會增加任何額外的開發工作。
在JS、CSS的合并、壓縮、緩存管理一文中說到自己寫過的1個自動合并、壓縮JS,CSS,并添加版本號的組件。這次把壓縮html的功能也加入到該組件中,流程很簡單,就是在程序啟動(contextInitialized or Application_Start)的時候掃描所有html,jsp(ASPx)進行壓縮。
壓縮的注意事項:
實現的方式主要是用正則表達式去查找,替換。在html壓縮的時候,主要要注意下面幾點:
1. pre,textarea標簽里面的內容格式需要保留,不能壓縮。
2. 去掉html注釋的時候,有些注釋是不能去掉的,比如:!--[if IE 6] ..... ![endif]--
3. 壓縮嵌入式js中的注釋要注意,因為可能注釋符號會出現在字符串中,比如: var url = "http://www.cnblogs.com"; // 前面的//不是注釋
去掉JS換行符的時候,不能直接跟一下行動內容,需要有空格,考慮下面的代碼:
else
return;
it知識庫:Web高性能開發之瘋狂的HTML壓縮,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。