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