從DXperience 9.2開始,為了實現HTML壓縮特別是提高網站的效能,DX提供了web.config的相關設定. 首先,我們看一組資料:
速度對比
使用自訂的HttpHandler,對於9.2版本的效能影響是非常明顯的,從下表中可以看出9.1跟9.2的對比資料:
以下測試載入器是採用Fiddle2得出的結果:
2009.1
2009.2
接收位元組數: 1,906,225 792,501
耗時: 00:00:21.7013394 00:00:05.0325032
text/ Java Script: 761,949 134,195
text/html: 924,800 40,667
頁面載入速度從 21.7 到 5 秒 ! 在512K的網速下,速度快了4.3倍.
HTML 輸出小了 5 到 7 倍! 頁面大小從 324K 到 41K - 大概少了7倍.
設定
要得到比較好的HTML壓縮率和資源檔壓縮,可以在web.config裡設定下面四個設定(第四項在9.2.4中會導致報表匯出BUG,第三項在9.2.4中可能會導致部分BUG):
Code Snippet
<appSettings>
<add key="DXEnableCallbackCompression" value="true"/>
<add key="DXEnableResourceCompression" value="true"/>
<add key="DXEnableResourceMerging" value="true"/>
<add key="DXEnableHtmlCompression" value="true"/>
</appSettings>
DXEnableCallbackCompression – 壓縮 AJAX 回調(預設為true)
DXEnableResourceCompression – 壓縮指令碼和CSS 檔案(預設為true)
DXEnableResourceMerging – 把所有指令碼合并成單個檔案 (從不同的程式集) 和所有CSS檔案合并成單個檔案以降低伺服器請求. (預設為false)
DXEnableHtmlCompression – 壓縮包括AJAX回調在內的HTML 輸出到用戶端瀏覽器 (預設為false)
要壓縮單獨的頁面,可以使用 DevExpress.Web.ASPxClasses.ASPxWebControl.MakeResponseCompressed() 方法.
HTML 壓縮有一個缺點- 用戶端瀏覽器將只顯示壓縮後的網頁. 考慮到壓縮檔的壓縮率. 壓縮檔將在看到內容之前被解壓縮.
這就帶來一個有意思的問題, 如何考量傳輸速度和解壓縮效能之間的選擇?
頻寬 vs 處理器
壓縮有一個要權衡的東西. 壓縮需要在伺服器和用戶端使用更多的CPU負載. 畢竟,壓縮編碼是使用較少的位元資訊的過程。另一方面,
, 壓縮也有較大的優勢,如更快的網站訪問素的和消耗更少的頻寬。所以,您是怎麼選擇呢?
很簡單,選擇節省頻寬和提高網站速度. 頻寬相對來說是要貴一點的,而處理器的成本相對便宜一點。事實上,現在的處理器速度已經很快了,足以輕鬆地處理HTML壓縮需求。
除了ISP的頻寬成本,對一個網站來說速度也是重要的。像Google,雅虎和微軟這些大型的網站就能理解這一點,如果您的網站花很長時間來載入,那麼訪客很有可能會選擇離開。因此,你應該為使用者在網路上的體驗考慮網站的速度
文章出處:DIY部落