2010-11-25 15 views
7

¿Cómo puedo borrar el caché en gwt?cómo borrar el caché en gwt?

o hay alguna forma de evitar que el navegador guarde el caché en gwt?

+0

lo que hace caché por el navegador? ¿Puedes por favor más en detalle? –

+0

http://en.wikipedia.org/wiki/Web_cache –

Respuesta

16

Cuando implementa una aplicación GWT, es importante evitar que los proxies y los navegadores guarden en caché los archivos .nocache.js generados por GWT. Una solución es implementar un filtro de servlet que agregue los encabezados HTTP necesarios que controlan el comportamiento de almacenamiento en caché.

Así es un filtro de este tipo: http://seewah.blogspot.com/2009/02/gwt-tips-2-nocachejs-getting-cached-in.html

Los encabezados en ese ejemplo son:

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 se debe establecer en el momento de la solicitud.

Expires es mejor configurarlo en algún momento en el pasado, esto obliga a todos a considerar que el contenido ya está desactualizado.

Pragma es una etiqueta que ha sido reemplazada por Cache-Control, pero no está de más tenerla.

Cache-Controlno-cache significa que un navegador o proxy debe revalidar una copia almacenada en caché antes de liberarla al cliente. no-store significa que nadie está guardando una copia en caché (lo que hace que no-cache sea redundante). must-revalidate dice que el navegador/proxy debe obedecer la información de frescura y revalidar, también es redundante con no-store.

0

La mejor manera de hacerlo cuando tiene un servidor Apache2 en el medio es configurar su Host virtual para descargar archivos css nocache siempre. Aquí tienes un ejemplo: http://pgt.de/2011/01/27/apache-configuration-for-gwt-applications/comment-page-1/#comment-23996.

poner esto en el archivo de servidor virtual:

<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> 

Saludos

Cuestiones relacionadas