2014-02-20 119 views
3

我正在進行有效負載優化。啓用GZIP是GWT應用程序

這裏,我讀了compress your responses in to GZIP

所以我Configuring the CompressionFilter

並配置了以下過濾器來壓縮我的反應,gzip壓縮,

<filter> 
    <filter-name>compressionFilter</filter-name> 
    <filter-class>com.googlecode.webutilities.filters.CompressionFilter</filter-class> 
    <init-param> 
     <param-name>compressionThreshold</param-name> 
     <param-value>1024</param-value> 
    </init-param> 
    <init-param> 
     <param-name>ignoreMimes</param-name> 
     <param-value>images/*,video/*, multipart/x-gzip</param-value> 
    </init-param> 

</filter> 
<filter-mapping> 
    <filter-name>compressionFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

它的正常工作像JS不是文件,HTML ,css ..等等。但是,對於Ajax響應,我無法使其工作。

我正在使用GWT RPC調用,默認情況下gzip響應,我的假設是它正在嘗試再次gzip,這已經是一個gzip響應,並給我例外。

StackOverFlow不允許粘貼StackTrace。所以添加一個圖像。

enter image description here

在這個任何幫助嗎?我錯過了什麼?

回答

0

這不是你的問題的解決方案,但它可以幫助解決的基本問題(實現您的應用程序gzip壓縮)不同的一點點...

如果可能的話,我會一直使用Apache(或nginx)作爲前端服務器。關於gzip壓縮,Apache應該更快(純C實現gzip)。要知道,除了gzip壓縮此設置提供了更多的不錯的東西:

  • 設置正確的緩存頭(例如:* .cache.html文件)
  • 交付的錯誤頁面,如果Servlet容器下跌
  • 減少通過前端服務器緩存/傳遞靜態資源來處理Servlet容器的請求數量
  • 你甚至可以使用你的靜態資源的預壓縮版本不會一遍又一遍地壓縮相同的東西(https://code.google.com/p/zopfli/可以是有助於減少預壓縮資源的大小)

當然有更多的優勢,但我不是一個行動的人。