it-swarm.com.de

Verwenden Sie <meta> -Tags, um das Caching in allen Browsern zu deaktivieren?

Ich habe gelesen, dass Sie den Cache deaktivieren können, wenn Sie keinen Zugriff auf die Header des Webservers haben:

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

Aber ich habe auch gelesen, dass dies in einigen IE-Versionen nicht funktioniert. Gibt es eine Reihe von <meta> -Tags, die den Cache in allen Browsern deaktivieren?

424
leeand00

Für moderne Webbrowser (nach IE9)

Die korrekten Informationen finden Sie im Duplikat oben auf der Seite!

Siehe Antwort hier: Wie kann das Caching von Webseiten in allen Browsern gesteuert werden?


Für IE9 und früher

Nicht blind kopieren, sondern einfügen!

Die Liste ist nur ein Beispiel für verschiedene Techniken, nicht für das direkte Einfügen. Beim Kopieren würde der zweite die erste und der vierte die dritte aufgrund der http-äquivalenten Deklarationen überschreiben UND mit dem W3C-Validator fehlschlagen. Man kann höchstens eine der http-Äquiv-Deklarationen haben. Pragma, Cache-Kontrolle und läuft ab. Diese sind bei Verwendung moderner, aktueller Browser völlig veraltet. Nach IE9 trotzdem. Chrome und Firefox funktionieren mit diesen nicht wie erwartet, 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" />

Verwenden Sie diese eigentlich gar nicht!

Caching-Header sind in Metaelementen unzuverlässig. Zum einen ignorieren alle Web-Proxys zwischen der Site und dem Benutzer diese vollständig. Für Header wie Cache-Control und Pragma sollten Sie immer einen echten HTTP-Header verwenden.

696
user159088

Dies ist ein Link zu einer großartigen Fallstudie zum branchenweiten Missverständnis der Cachesteuerung.

http://securityevaluators.com/knowledge/case_studies/caching/

Zusammenfassend wird laut diesem Artikel nur Cache-Control: no-store von Chrome, Firefox und IE erkannt. IE erkennt andere Steuerelemente, Chrome und Firefox jedoch nicht.

76
Paul

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

Cache-Header sind jedoch in Metaelementen unzuverlässig. Zum einen ignorieren alle Web-Proxys zwischen der Site und dem Benutzer diese vollständig. Für Header wie Cache-Control und Pragma sollten Sie immer einen echten HTTP-Header verwenden.

24
bobince

Beim Wiederholen des gleichen Dienstaufrufs sind einige Caching-Probleme bei Dienstaufrufen aufgetreten (langes Polling). Das Hinzufügen von Metadaten hat nicht geholfen. Eine Lösung besteht darin, eine timestamp zu übergeben, um sicherzustellen, dass ie denkt, dass es sich um eine andere http Serviceanforderung handelt. Das hat bei mir funktioniert, sodass das Hinzufügen eines serverseitigen Skriptcode-Snippets zum automatischen Aktualisieren dieses Tags nicht schaden würde:

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

6
user1496767

pragma ist die beste Wahl:

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