自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

高性能WEB開(kāi)發(fā)之瘋狂的HTML壓縮

開(kāi)發(fā) 前端
在“JS、CSS的合并、壓縮、緩存管理”一文中說(shuō)到自己寫(xiě)過(guò)的1個(gè)自動(dòng)合并、壓縮JS,CSS,并添加版本號(hào)的組件。這次把壓縮html的功能也加入到該組件中,流程很簡(jiǎn)單,就是在程序啟動(dòng)(contextInitialized or Application_Start)的時(shí)候掃描所有html,jsp(aspx)進(jìn)行壓縮。

上一篇隨筆中網(wǎng)友 skyaspnet 問(wèn)我如何壓縮HTML,當(dāng)時(shí)回答是推薦他使用gzip,后來(lái)想想,要是能把所有的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è)人覺(jué)得的壓縮html的最大好處就是一本萬(wàn)利,只要寫(xiě)好了一次,以后所有程序都可以使用,不會(huì)增加任何額外的開(kāi)發(fā)工作。

在“JS、CSS的合并、壓縮、緩存管理”一文中說(shuō)到自己寫(xiě)過(guò)的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)容,需要有空格,考慮下面的代碼:

  1. else  
  2. return; 

如果不帶空格,則變成elsereturn。

4. jsp(aspx) 中很有可能會(huì)使用嵌入一些服務(wù)器代碼,這個(gè)時(shí)候也需要單獨(dú)處理,里面注釋的處理方法跟js的一樣。

源代碼:

下面是java實(shí)現(xiàn)的源代碼,也可以 猛擊此處 下載該代碼,相信大家都看的懂,也很容易改成net代碼:

  1. show source 

使用注意事項(xiàng):

使用了上面方法后,再運(yùn)行程序,是不是發(fā)現(xiàn)每個(gè)頁(yè)面查看源代碼的時(shí)候都變成1行啦,還不錯(cuò)吧,但是在使用的時(shí)候還是要注意一些問(wèn)題:

1. 嵌入js本來(lái)想調(diào)用yuicompressor來(lái)壓縮,yuicompressor壓縮JS前,會(huì)先編譯js是否合法,因我們嵌入的js中可能很多會(huì)用到一些服務(wù)器端代碼,比如 var now = ,這樣的代碼會(huì)編譯不通過(guò),所以無(wú)法使用yuicompressor。

最后只能自己寫(xiě)壓縮JS代碼,自己寫(xiě)的比較粗燥,所以有個(gè)問(wèn)題還解決,就是如果開(kāi)發(fā)人員在一句js代碼后面沒(méi)有加分號(hào)的話,壓縮成1行就很有可能出問(wèn)題。所以使用這個(gè)需要保證每條語(yǔ)句結(jié)束后都必須帶分號(hào)。

2. 因?yàn)槭窃诔绦騿?dòng)的時(shí)候壓縮所有jsp(aspx),所以如果是用戶(hù)請(qǐng)求的時(shí)候動(dòng)態(tài)產(chǎn)生的html就無(wú)法壓縮。

原文鏈接:http://www.cnblogs.com/BearsTaR/archive/2010/05/17/html_compressor.html

系列專(zhuān)題:高性能WEB開(kāi)發(fā)應(yīng)用指南

【編輯推薦】

  1. 高性能WEB開(kāi)發(fā)之頁(yè)面呈現(xiàn)、重繪、回流
  2. 高性能WEB開(kāi)發(fā)之如何加載JavaScript
  3. 高性能WEB開(kāi)發(fā)之減少請(qǐng)求、響應(yīng)的數(shù)據(jù)量
  4. 讓W(xué)eb開(kāi)發(fā)者事半功倍的8個(gè)網(wǎng)站
  5. 20個(gè)新鮮的Web應(yīng)用 Web設(shè)計(jì)師不可錯(cuò)過(guò)
責(zé)任編輯:陳貽新 來(lái)源: BearRui
相關(guān)推薦

2011-04-22 09:54:37

CSSjavascript

2011-04-18 10:16:30

WEB高性能

2011-04-07 13:53:25

Web工具

2011-04-19 11:06:03

JavaScriptweb

2011-10-18 13:58:32

高性能web

2011-04-07 13:39:24

WebHTTP

2011-04-21 09:59:48

WEBjavascript

2011-06-14 09:27:43

高性能WEB開(kāi)發(fā)

2013-09-10 16:16:19

移動(dòng)網(wǎng)站性能優(yōu)化移動(dòng)web

2011-04-21 10:47:29

Webjavascript

2011-04-25 10:11:57

高性能web開(kāi)發(fā)

2011-04-28 09:40:26

flush高性能Web開(kāi)發(fā)

2016-08-23 14:37:21

2009-07-30 10:28:56

Web高性能開(kāi)發(fā)

2013-06-19 09:20:53

Web開(kāi)發(fā)Web性能優(yōu)化高性能

2016-11-28 09:19:27

2013-08-16 14:43:14

高性能移動(dòng)Web移動(dòng)Web站點(diǎn)移動(dòng)Web

2013-09-10 17:13:57

移動(dòng)網(wǎng)站性能優(yōu)化移動(dòng)web

2014-03-19 14:34:06

JQuery高性能

2019-03-14 15:38:19

ReactJavascript前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)