ich habe habe ein Problem mit dem Cachen einer Seite. Es geht darum, dass sie sich ein externes JavaScript holt:
<script src="hierMeinExternesScript.js"></script>
Und nicht die Seite verändert sich dynamisch - sondern genau die Datei mit dem Script! (hierMeinExternesScript.js)
* Wie kann ich den Browser/Proxy anweisen, eine Seite nicht im Cache zu
speichern?
Generell sollte man das nicht via HTML machen, da der Quellcode vor
allem von Proxies meist gar nicht geparsed wird. Ein Script oder der
Server sollte angewiesen werden folgende Header zu senden:
Cache-Control: max-age=0, no-cache, must-revalidate
Expires: Thu, 30 Mar 2000 20:12:39 GMT
Pragma: no-cache
Das bei Expires: angegebe Datum sollte das aktuelle Datum im
HTTP-Date Format sein. '0' ist ein ungültiger Wert!
Falls der Apache Webserver verwendet wird und die Module mod_headers
und mod_expires geladen wurden (bei < 2.0 in genau der Reihenfolge)
kann man z.B. in einer .htaccess folgendes definieren:
AddType "text/html; charset=iso-8859-1" .html
ExpiresActive On
ExpiresByType "text/html; charset=iso-8859-1" "now"
<Files ~ ".html$">
Header append Cache-Control "no-cache, must-revalidate"
Header set Pragma "no-cache"
</Files>
um alle .html Dateien nicht zu cachen. Ob man das wirklich will,
muss man sich gut überlegen; die Webseite wird dadurch erheblich
langsamer, da der Browser bei jedem Zugriff die Resource erneut vom
Server holen muss.
Wenn man die Möglichkeit nicht hat, kann man ein ähnliches Verhalten
auch mit META-Tags erreichen:
<meta http-equiv="Cache-Control"
content="max-age=0, no-cache, must-revalidate">
<meta http-equiv="Expires"
content="Thu, 30 Mar 2000 20:12:39 GMT">
<meta http-equiv="Pragma"
content="no-cache">