Jak wyczyścić pamięć podręczną w gwt?jak wyczyścić pamięć podręczną w gwt?
lub czy jest jakiś sposób, który uniemożliwi przeglądarce zachowanie pamięci podręcznej w gwt?
Jak wyczyścić pamięć podręczną w gwt?jak wyczyścić pamięć podręczną w gwt?
lub czy jest jakiś sposób, który uniemożliwi przeglądarce zachowanie pamięci podręcznej w gwt?
Po wdrożeniu aplikacji GWT należy unikać serwerów proxy i przeglądarek, aby buforować pliki .nocache.js generowane przez GWT. Jednym z rozwiązań jest implementacja filtru serwletów, który dodaje niezbędne nagłówki HTTP, które kontrolują zachowanie pamięci podręcznej.
Oto taki filtr: http://seewah.blogspot.com/2009/02/gwt-tips-2-nocachejs-getting-cached-in.html
Nagłówki w tym przykładzie są:
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
powinien być ustawiony w momencie składania wniosku.
Expires
najlepiej jest ustawić w przeszłości, co zmusza wszystkich do rozważenia zawartości, która jest już nieaktualna.
Pragma
jest tagiem, który został zastąpiony przez Cache-Control
, ale nie zaszkodzi mieć go.
Cache-Control
no-cache
oznacza, że przeglądarka lub serwer proxy musi ponownie zatwierdzić kopię z pamięci podręcznej przed zwolnieniem jej do klienta. no-store
oznacza, że nikt nigdy nie trzyma kopii z pamięci podręcznej (co powoduje, że no-cache
jest zbędny). must-revalidate
mówi, że przeglądarka/serwer proxy musi przestrzegać informacji o świeżości i przedłużać ważność, również zbędnych z no-store
.
Najlepszym sposobem na to, gdy serwer Apache2 jest w środku, jest konfigurowanie wirtualnego hosta w celu pobierania zawsze plików css nocache. Oto przykład: http://pgt.de/2011/01/27/apache-configuration-for-gwt-applications/comment-page-1/#comment-23996.
umieścić ten plik serwera wirtualnego:
<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>
Cheers
co robi cache przez przeglądarkę? czy możesz bardziej szczegółowo? –
http://en.wikipedia.org/wiki/Web_cache –