ASP.NET頁面進行GZIP壓縮優化的幾款壓縮模塊的使用簡介及應用測
2024-07-10 12:39:56
供稿:網友
在介紹之前,先簡單說一說ASP.NET服務端GZIP壓縮模塊的作用及工作原理,很多人編寫網頁的時候頁面因為使用了大量的JS特效又或者放置很多大型動態廣告導致了頁面或腳本體積龐大,通常都會使用一些壓縮工具本地對頁面或腳本進行一定的壓縮后再上傳到服務器,但這樣的壓縮工具一般壓縮率有限,優化自然也不明顯,本文章介紹的壓縮模塊的作用就是對asp.net的頁面或腳本等資源進行高強度GZIP壓縮(一般能壓縮到只有1/5的體積),而且壓縮的過程是發生在客戶端請求aspx頁面的時候由服務端進行壓縮處理后再傳送給客戶端顯示,換言之項目使用這些壓縮模塊之后,所有的aspx頁面都不需要事先進行壓縮處理,而是由壓縮模塊在頁面被客戶端第一次請求的時候自動在服務端后臺進行壓縮處理(壓縮處理的時間很快,幾乎可以忽略不計,但壓縮后的頁面加載速度卻提升明顯)。下面就讓我介紹幾款實現這樣功能的壓縮模塊:
一、WebResourceCompression壓縮模塊
這個壓縮模塊是專門用來實時壓縮ASP.NET2.0頁面引用的所有*.axd資源,一般aspx頁面使用了如anthem.net的ajax框架或asp.net驗證控件都會產生axd文件引用,這個文件實際就是一個js腳本,啟用這個壓縮模塊后,所有的axd資源都會被GZIP壓縮后再傳送給客戶端,此模塊特別適用于aspx頁面應用了ajax框架或需引用體積龐大的axd資源文件的項目!
使用:解壓后將WebResourceCompression.dll放到網站項目的BIN目錄,并且在Web.config <httpModules> 配置節中加入以下語句:
代碼如下:
<add name="WebResourceCompression" type="WebResourceCompression.WebResourceCompressionModule"/>
優點:使用簡單
缺點:僅支持ASP.NET2.0或以上版本,不能壓縮除axd外的其它資源!
二、PageCompression壓縮模塊
與之前的模塊不同,這個模塊是專門用來壓縮aspx頁面的,啟用這個壓縮模塊之后,aspx頁面將會被實時壓縮,一般100K的頁面能被壓縮到25K左右,此模塊適用于只需要對頁面進行壓縮的項目!
使用:解壓后將Compression.PageCompressionModule.dll放到網站項目的BIN目錄,并且在Web.config <httpModules> 配置節中加入以下語句:
代碼如下:
<add name="PageCompressionModule" type="Compression.PageCompressionModule,Compression.PageCompressionModule"/>
優點:使用簡單
缺點:僅支持ASP.NET2.0或以上版本,不能壓縮除aspx頁面外的其它資源,而且啟用壓縮后,頁面引用的axd資源會無效(BUG)!
三、HttpCompress6.0壓縮模塊
這是一個支持asp.net1.0/1.1/2.0(2.0以下版本不支持gzip壓縮,僅支持deflate壓縮),可以壓縮aspx頁面請求的所有類型(MimeTypes)的資源,包括圖片、js腳本、axd、aspx頁面、css文件等,并且能在web.config詳細自定義要壓縮那種類型的資源及不壓縮那種類型的資源、也可定義要壓縮指定的頁面或不壓縮指定的頁面,另外還有壓縮比率設定(high|normal|low)等等強大的自定義功能,不過此控件的最嚴重問題是在asp.net2.0下啟用壓縮會導致axd文件無效,這樣如果頁面應用了ajax框架就會導致ajax功能失效。