2009-09-09 61 views

回答

1

你需要在你的HTML文件中.nocache.js文件作爲腳本:

<script language="javascript" src="com.acme.gwt.Module.nocache.js"></script> 
<script language="javascript" src="com.acme.gwt.Module2.nocache.js"></script> 

你還需要配置你的Web服務器中添加頭請求.nocache。文件以防止客戶端瀏覽器進行緩存。如果這些文件被緩存,客戶端將不會輕鬆看到應用程序的新版本。 Web服務器移植的方式做到這一點是使用Servlet過濾器:

public class CacheHeaderFilter implements Filter { 

    public void doFilter(ServletRequest req, ServletResponse res, 
      FilterChain filterChain) throws IOException, ServletException { 
     String uri = ((HttpServletRequest)req).getRequestURI(); 
     if (uri.contains(".cache.")) { 
      ((HttpServletResponse)res).setDateHeader("Expires", 
       System.currentTimeMillis() + 31536000000L); 
     } else if (uri.contains(".nocache.")) { 
      ((HttpServletResponse)res).setHeader("Cache-Control", "no-cache"); 
     } 
     filterChain.doFilter(req, res); 
    } 
... 
} 

參考這在web.xml中:

<filter> 
    <filter-name>cacheHeaderFilter</filter-name> 
    <filter-class>com.acme.gwt.server.CacheHeaderFilter</filter-class> 
</filter> 
+1

注意,這兩個GWT模塊不互相地干擾。通常情況下,gwt模塊假定它是頁面上唯一的gwt模塊,所以類似歷史iframe的東西可能會消失。 – Chii 2009-09-09 10:53:51

相關問題