496 Stimmen

Gibt es einen <meta>-Tag, um die Zwischenspeicherung in allen Browsern zu deaktivieren?

Ich habe gelesen, dass man den Cache ausschalten kann, wenn man keinen Zugriff auf die Header des Webservers hat:

<meta http-equiv="Cache-Control" content="no-store" />

Aber ich habe auch gelesen, dass dies in einigen Versionen des IE nicht funktioniert. Gibt es eine Reihe von <meta>-Tags, mit denen der Cache in allen Browsern ausgeschaltet werden kann?

755voto

Für moderne Webbrowser (nach IE9)

Siehe die Duplikatliste oben auf der Seite für korrekte Informationen!

Siehe Antwort hier: Wie lässt sich die Zwischenspeicherung von Webseiten in allen Browsern steuern?


Für IE9 und früher

Kopieren Sie dies nicht blindlings!

Die Liste ist nur ein Beispiel für verschiedene Techniken, sie ist nicht für direkte Einfügen. Beim Kopieren würde die zweite die erste überschreiben und die vierte würde die dritte überschreiben, da die http-equiv Deklarationen überschreiben UND mit dem W3C-Validator fehlschlagen. Höchstens könnte man eine von jeder http-equiv-Deklaration; pragma, cache-control und expires. Diese sind bei der Verwendung von modernen, aktuellen Browsern völlig veraltet. Nach IE9 sowieso. Chrome und Firefox funktionieren damit nicht so, wie man es erwarten würde, wenn überhaupt.

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

Benutzen Sie diese eigentlich gar nicht!

Caching-Header sind in Meta-Elementen unzuverlässig; zum einen, werden alle Web-Proxys zwischen der Website und dem Nutzer vollständig ignoriert ignorieren. Sie sollten immer einen echten HTTP-Header verwenden für Header wie Cache-Control und Pragma verwenden.

84voto

Paul Punkte 837

Laut Independent Security Evaluators' großer Fallstudie über das branchenweite Missverständnis der Kontrolle von Caches nur Cache-Control: no-store wird von Chrome, Firefox und IE erkannt. Der IE erkennt andere Steuerelemente, Chrome und Firefox jedoch nicht.

25voto

bobince Punkte 512550

Im IE5 funktioniert es nicht, aber das ist kein großes Problem.

Allerdings sind Cache-Header in Meta-Elementen unzuverlässig; zum einen werden sie von allen Web-Proxies zwischen der Website und dem Benutzer vollständig ignoriert. Sie sollten für Header wie Cache-Control und Pragma immer einen echten HTTP-Header verwenden.

11voto

KJ Saxena Punkte 20750

Pragma ist die beste Lösung:

<meta http-equiv="Pragma" content="no-cache">

8voto

Ich habe einige Caching-Probleme bei Dienstaufrufen bemerkt, wenn ich denselben Dienstaufruf wiederhole (langes Polling). Das Hinzufügen von Metadaten hat nicht geholfen. Eine Lösung ist die Übergabe einer timestamp um sicherzustellen ie denkt, es ist ein anderer http Serviceanfrage. Das hat bei mir funktioniert. Es kann also nicht schaden, ein serverseitiges Skripting-Code-Snippet hinzuzufügen, um dieses Tag automatisch zu aktualisieren:

<meta http-equiv="expires" content="timestamp">

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X