2010-11-25 14 views
7

Come posso cancellare la cache in gwt?come svuotare la cache in gwt?

oppure esiste un modo che impedisca al browser di mantenere la cache in gwt?

+0

cosa fa cache del browser? puoi per favore più in dettaglio? –

+0

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

risposta

16

Quando si distribuisce un'applicazione GWT è importante evitare che proxy e browser memorizzino nella cache i file .nocache.js generati da GWT. Una soluzione è implementare un filtro servlet che aggiunge le intestazioni HTTP necessarie che controllano il comportamento di memorizzazione nella cache.

Ecco un tale filtro: http://seewah.blogspot.com/2009/02/gwt-tips-2-nocachejs-getting-cached-in.html

Le intestazioni in questo esempio sono:

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 deve essere impostato al momento della richiesta.

Expires è l'impostazione migliore per un momento nel passato, questo costringe tutti a considerare il contenuto già obsoleto.

Pragma è un tag che è stato sostituito da Cache-Control, ma non fa male averlo.

Cache-Controlno-cache significa che un browser o un proxy deve riconvalidare una copia memorizzata nella cache prima di rilasciarla al client. no-store significa che nessuno conserva mai una copia memorizzata nella cache (il che rende ridondante no-cache). must-revalidate dice che il browser/proxy deve obbedire alle informazioni di freschezza e riconvalida, anche ridondante con no-store.

0

Il modo migliore per farlo quando si dispone di un server Apache2 nel mezzo è la configurazione del proprio host virtuale per scaricare sempre i file nocne css. Ecco un esempio: http://pgt.de/2011/01/27/apache-configuration-for-gwt-applications/comment-page-1/#comment-23996.

mettere questo sul file server virtuale:

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

Acclamazioni

Problemi correlati