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?
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?
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-Control
no-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
.
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
cosa fa cache del browser? puoi per favore più in dettaglio? –
http://en.wikipedia.org/wiki/Web_cache –