利用壓縮傳輸與緩存提高網站速度

上篇說到是利用服務器的內存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測試對比的結果:

優化前:

優化後:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章