如何清除gwt中的caching?

如何清除gwt中的caching?

或者有什么办法阻止浏览器保持caching在gwt

在部署GWT应用程序时,避免代理和浏览器caching由GWT生成的.nocache.js文件是非常重要的。 一个解决scheme是实现一个servletfilter,该filter添加了控制caching行为的必要HTTP头。

这是一个这样的filter: http : //seewah.blogspot.com/2009/02/gwt-tips-2-nocachejs-getting-cached-in.html

该例中的标题是:

Date: Wed, 24 Nov 2010 20:32:43 GMT Expires: Wed, 01 Nov 2000 00:00:00 GMT Pragma: no-cache Cache-Control: no-cache, no-store, must-revalidate 

Date应设置为请求的时间。

Expires最好设置在过去的某个时间,这迫使每个人都考虑已经陈旧的内容。

Pragma是一个已经被Cache-Control所取代的标签,但它并没有受到伤害。

Cache-Control no-cache意味着浏览器或代理必须在将caching副本发布到客户端之前对其进行重新validation。 no-store意味着没有人保留一个caching副本(这使得no-cache冗余)。 must-revalidate浏览器/代理服务器必须遵守新鲜度信息并重新validation,同时也no-store冗余。

当你有一个Apache2服务器的时候,最好的办法是configuration你的虚拟主机,以便总是下载css nocache文件。 这里有一个例子: http : //pgt.de/2011/01/27/apache-configuration-for-gwt-applications/comment-page-1/#comment-23996 。

把这个放在虚拟服务器文件上:

  <IfModule mod_expires.c> ExpiresActive On </IfModule> <IfModule mod_headers.c> <ProxyMatch (.*)nocache\.js$> Header Set Cache-Control "max-age=0, no-store" </ProxyMatch> <ProxyMatch (.*)\.cache\.(.*)> Header Set Cache-Control "max-age=31536000, public, must-revalidate" </ProxyMatch> <ProxyMatch (.*)\.cache\.js$> Header Set Cache-Control "max-age=31536000, private" </ProxyMatch> </IfModule> <Proxy *> <IfModule mod_expires.c> ExpiresByType application/json "now" ExpiresByType text/css "now" ExpiresByType text/html "now" </IfModule> <ifModule mod_headers.c> Header unset ETag Header unset Last-Modified </ifModule> FileETag None </Proxy> 

干杯