Frage

Ich habe eine Javascript galleria, die Arbeit in jedem modernen Browser tut, auch in IE7. Aber in IE8, wenn seine Last .. es zeigt nicht die Galerie .. aber wenn ich Strg + F5 drücken wird es ein hartes reload, löscht sie den Cache und schließlich die galleria erscheint .. Wenn ich neu lädt nur die Seite .. oder wenn ich gehe auf eine andere Seite mit dem gleichen galleria Skript, das Problem kommt wieder .. so dass ich eine harte reload-Skript für IE8 benötigen.

Pseudo-Code:

On Document Load

If user agent IE8 {
erase website cache
}

do normally continue webpage loading..
War es hilfreich?

Lösung

Das Problem ist nicht auf der Client-Seite. Das Problem ist der Server. IE wird aggressiv Cache-Antworten auf AJAX-Anforderungen, wenn der Server eine Cache-Control: no-cache in der Antwort setzt. Das Löschen des Cache im Browser ist die falsche Lösung, da der Server sollte entscheiden, was aktuell ist und was nicht.

So den Server ändern Antwort auf Ihre Anfrage die richtigen Header enthalten.

Andere Tipps

siehe den Link über den Cache zu löschen! Alle löschen Website Cache?

Ein möglicher Weg zu fälschen eine klare Cache auf alle Ressourcen eines Cache-buster anhängen von einer Seite Ihre Ressourcen wie

sein würde
"test.js?cacheBuster=" + new Date())

Dies sollte das letzte Mittel sein.

Mit Javascript, Sie werden nicht in der Lage sein, dies zu tun. Was Sie tun können, ist Code in Ihrer Server-Seite Sprache zu schreiben, so dass die gesamte Seite nicht zwischengespeichert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top