上篇說到是利用服務器的內存IO來提升響應速度,就不得不說網絡在響應速度另一個重要因素---網絡傳輸的速度。這個決定因子的改變比服務器的硬件更要糜費。君不見那3大壟斷組織近期提了網價降了網速。。。扯遠了。。說技術。。。
一、在有限帶寬窗口裏提高傳輸的內容纔是重點
利用tk-filters壓縮.js、.css、.jsp 大小,去掉格式、空格等等。只需要耗費一點服務器的CPU。
1、下載tk-filters,把tk-filters.properties放到classes,把tk-filters.jar放到Lib裏。
2、修改項目的WEB.xml文件把需要壓縮的格式加上:
<filter>
<filter-name>GZIPFilter</filter-name>
<filter-class>com.tacitknowledge.filters.gzipfilter.GZIPFilter</filter-class>
</filter>
<!-- GZIPFilter 設置自己想要壓縮的文件類型-->
<filter-mapping>
<filter-name>GZIPFilter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>GZIPFilter</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>GZIPFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
從Firebug上看到文件比之前小了25%左右。
二、緩存網站的框圖也是重點
自從動態網站出現,各種圖片與樣式就構成網站的框框,而我們平常看到是隻是實時更新數據,每天的數據是沒有多大的,如果網站不改版它的框架就是不變的。我們緩存了框架就是提高了網站的響應速度。
1、修改項目的WEB.xml文件把需要緩存的格式加上:
<!-- CacheFilter緩存定義 設置此項時tk-filters.properties的CacheFilter.Enabled=true纔可用 -->
<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.tacitknowledge.filters.cache.CacheHeaderFilter</filter-class>
</filter>
<!-- CacheFilter 設置自己想要緩存的文件類型-->
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.gif</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jpg</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.png</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
從Friebug上可以看到有一些文件是從緩存中讀取的:
默認是15分鐘緩存一次,在tk-filters.properties中要打開這兩個功能才能使用。
下面是LoadRunner測試對比的結果:
優化前:
優化後: