Caching Problem mit IE6
mrdynalink
- javascript
Ich wollte einen einfachen Bildbetrachter mit Javascript programmieren, aber ich scheine an den speziellen Eigenschaften des IE6 zu scheitern. Vielleicht kann mir hier jemand helfen.
Der Viewer sollte folgende, einfache Eigenschaften haben:
Klingt einfach, dachte ich. Habe ein Script geschrieben, welches genau diese Eigenschaften hat, allerdings muss man dafür den Browser "Conqueror" von Linux verwenden. Für den IE6, den ja fast alle verwenden, kriege ich das einfach nicht hin. Es scheint am Caching Verhalten des IE6 zu liegen. Wenn ich meinen Viewer aufrufe, erscheint nach einigen Sekunden das 1.Bild. Ich warte bis das nächste Bild "vorgeladen" ist. Nun klicke ich auf den "next"-Button und hätte erwartet, das das nächste Bild unmittelbar zu Anzeige gebracht wird. Falsch, es dauerte einige Sekunden, bis das Bild endlich erscheint. Dieser Effekt lässt sich beliebig mit jedem folgenden Bild reproduzieren.
Jetzt kommt der Hammer. Ich klicke einfach so mal auf "reload": Ab jetzt funktioniert das Script perfekt. Ich klicke auf next, das Bild ist augenblicklich in der Anzeige, die kleine LED blinkt und zeigt damit den Ladevorgang für das nächste Bild an ... so soll es sein. Wenn ich das letzte Bild gesehen habe kann ich blitzschnell vor- und zurückgehen.
Nun habe ich in meinem Script auch ein kleines Formular für die Eingabe der Delay-Zeit einer Slideshow-Funktion (die nicht zur Aufgabenstellung gehört). Wenn ich hier was eingebe, wird meine Seite erneut geladen (Parameterübergabe mit post-Methode), danach ist wieder das ursprüngliche, merkwürdige Caching-Verhalten zu sehen. Zusätzlich fängt der IE auch noch damit an, die Bilder erneut zu laden, obwohl sie sich definitiv im Cache Verzeichnis des Browsers befinden. Ich kann das Verhalten sofort korrigieren, indem ich wieder auf reload klicke.
Habe jetzt ein bischen mit Meta-Tags wie cach-control und max-age experimentiert, konnte aber keinen Zufallstreffer landen, dem IE scheinen solche Tags völlig egal zu sein.
Wie kann ich erreichen, das der IE sich so verhält, wie er das nach einem "Reload" tut ? Gibt es eine Beispielscript, das meine Anforderungen erfüllt und tatsächlich ohne wenn und aber auf dem IE funktioniert. Das würde mich wirklich
sehr interressieren.
Das Viewer Problem kann man unter
http://mrdynalink.de.hm/Viewer-Problem
ansehen. Vielen Dank für Ideen jeder Art.
MrDynalink
Moin!
Ich wollte einen einfachen Bildbetrachter mit Javascript programmieren, aber ich scheine an den speziellen Eigenschaften des IE6 zu scheitern. Vielleicht kann mir hier jemand helfen.
Bist du dir sicher, das dein Problem lediglich den IE betrifft? Mein Safari 1.3.1 (Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/312.5.1 (KHTML, like Gecko) Safari/312.3.1) lädt das nächste Bild auch nicht beim Betrachten des aktuellen.
Klingt einfach, dachte ich. Habe ein Script geschrieben, welches genau diese Eigenschaften hat, allerdings muss man dafür den Browser "Conqueror" von Linux verwenden.
Der Browser heißt tatsächlich Konqueror mit K, weil er zu KDE gehört. Interessanterweise stammt mein Safari vom Konqueror ab.
Für den IE6, den ja fast alle verwenden, kriege ich das einfach nicht hin. Es scheint am Caching Verhalten des IE6 zu liegen.
Stimmt vielleicht was mit deinem JavaScript-Code nicht? Welchen Browser hast du denn zum Testen benutzt?
Jetzt kommt der Hammer. Ich klicke einfach so mal auf "reload": Ab jetzt funktioniert das Script perfekt. Ich klicke auf next, das Bild ist augenblicklich in der Anzeige, die kleine LED blinkt und zeigt damit den Ladevorgang für das nächste Bild an ... so soll es sein. Wenn ich das letzte Bild gesehen habe kann ich blitzschnell vor- und zurückgehen.
Genau dieses Verhalten kann ich mit dem Safari 100%ig reproduzieren.
Habe jetzt ein bischen mit Meta-Tags wie cach-control und max-age experimentiert, konnte aber keinen Zufallstreffer landen, dem IE scheinen solche Tags völlig egal zu sein.
Oh, damit der IE bei solchen Sachen (oder auch bei dynamisch generierten Download-Inhalten) nichts Veraltetes nimmt, sind einige Kunststücke notwendig, frag mich aber nicht, welche.
Das Viewer Problem kann man unter
http://mrdynalink.de.hm/Viewer-Problem
ansehen.
Viele Grüße,
Robert