IE6 und Caching
-
09-06-2019 - |
Frage
Es scheint, dass IE6 jede Form der Cache-Ungültigmachung ignoriert, die über HTTP-Header gesendet wird. Ich habe versucht, Pragma auf „Kein Cache“ und „Cache-Ablauf“ auf die aktuelle Zeit zu setzen, aber in IE6 wird beim Zurückschlagen immer eine zwischengespeicherte Version einer Seite I aufgerufen Ich arbeite daran.
Gibt es einen bestimmten HTTP-Header, den IE6 ebenfalls überwacht?
Lösung
Cache-Control: private, max-age=0
sollte es beheben.Mit klassischem ASP ist dies möglich Response.Expires=-1
.
Bedenken Sie beim Testen, dass die Tatsache, dass Ihr Server Seiten mit deaktiviertem Caching bereitstellt, nicht bedeutet, dass der Browser dies auch dann befolgt, wenn er eine alte zwischengespeicherte Seite hat, von der ihm mitgeteilt wurde, dass sie in Ordnung sei.Leeren Sie den Cache oder verwenden Sie F5, um das Neuladen dieser Seite zu erzwingen.
Auch in den Fällen, in denen der Server zwischengespeicherte Inhalte bereitstellt, können Sie es verwenden Strg+F5 um dem Server zu signalisieren, es nicht aus dem Cache bereitzustellen.
Andere Tipps
Du musst vorsichtig sein.Wenn Sie AJAX über XMLHttpRequest (XHR) verwenden, werden die im Header festgelegten Cache-„Empfehlungen“ von ie6 nicht berücksichtigt.
Die Lösung besteht darin, eine Zufallszahl an die URL-Abfragen anzuhängen, die in AJAX-Anfragen verwendet werden.Zum Beispiel:
http://test.com?nonce=0123
Ein guter Generator hierfür ist die UTC()-Funktion, die einen eindeutigen Zeitstempel für den Browser des Benutzers zurückgibt ...das heißt, es sei denn, sie spielen mit ihrer Systemuhr herum.
Haben Sie versucht, ein ETag im Header festzulegen?Sie sind eine ziemlich zuverlässige Methode, um anzuzeigen, dass sich Inhalte geändert haben w3c-Spez & Wikipedia
Darüber hinaus besteht eine etwas grobere Möglichkeit darin, einen zufälligen Abfragezeichenfolgenparameter an die Anfrage anzuhängen, beispielsweise den aktuellen Unix-Zeitstempel.Wie gesagt, grob, aber IE6 ist nicht gerade das subtilste Biest
Eine kleine Anmerkung:Aus Erfahrung weiß ich, dass IE6 Javascript aus dem Cache lädt, selbst wenn er gezwungen wird, die Seite über Strg-F5 neu zu laden.Wenn Sie also mit Javascript arbeiten, leeren Sie immer den Cache.
Die IE-Webentwickler-Symbolleiste kann dabei enorm helfen.Es gibt eine Schaltfläche zum Löschen des Caches.
sehen Frage:Stellen Sie in allen Browsern sicher, dass eine Webseite nicht zwischengespeichert wird. Wie kann das Zwischenspeichern von Webseiten in allen Browsern gesteuert werden? Ich denke, das sollte auch bei deinem Problem helfen.
Inhalte mit „Content-Encoding:gzip“ wird immer zwischengespeichert, obwohl Sie „Cache-Control“ verwenden:kein Cache"
http://support.microsoft.com/kb/321722
Sie können gzip auch nur für IE6 deaktivieren