Browser Cache für einzelne Grafiken abschalten
Andreas
- html
0 Ole0 Johannes Zeller0 oFb
Hallo!
Ich suche nach einer Möglichkeit dem Browser das Cachen von einzelnen oder allen Grafiken zu verbieten - und zwar durch META-Tags oder zusätzliche Parameter im IMG-Tag.
Natürlich sollte das für alle Browser funktionieren, macht aber nix, wenn es nur eine MSIE-kompatible Lösung gibt.
Die META-Tags zum Abschalten des Cachings für HTML-Seiten habe ich schon probiert - klappt auch wunderbar, nur leider nicht für Grafiken, wenn ich das richtig gesehen habe. Das Problem ist: Auf einer Seite wird eine Grafik geladen, die immer den gleichen Dateinamen hat, aber bei jedem Aufruf anders aussieht (wie z.B. bei einer grafischen Statistik)... Leider merken sich die Browser die URL der Grafik und somit wird sie beim nächsten Aufruf der Seite nicht nochmals geladen.
Ich bin für jede Hilfe dankbar!
Viele Grüße
Andreas
hi Andreas
afaik ist es nur möglich entweder die ganze seite oder nichts auf der seite in bzw aus dem cache zu bekommen.
so long
ole
(8-)>
Hi Andreas
Die META-Tags zum Abschalten des Cachings für HTML-Seiten habe ich schon probiert - klappt auch wunderbar, nur leider nicht für Grafiken, wenn ich das richtig gesehen habe. Das Problem ist: Auf einer Seite wird eine Grafik geladen, die immer den gleichen Dateinamen hat, aber bei jedem Aufruf anders aussieht (wie z.B. bei einer grafischen Statistik)... Leider merken sich die Browser die URL der Grafik und somit wird sie beim nächsten Aufruf der Seite nicht nochmals geladen.
Dein Server muss die Bilder mit dem Header
cache-control:no-store ausliefern. Wie man das jetz praktisch einstellt weiß ich nicht. Mir fällt als Möglichkeit höchstens ein, ein Script zu schreiben, dass die Header zu der Grafik hinzufügt.
Schöne Grüße
Johannes
Hi Johannes,
vielen Dank - das dürfte DIE Lösung sein! Ich dachte gar nicht an eine serverseitige Möglichkeit...
Die Grafik wird sowieso von einem Script ausgegeben - also ist eine zusätzliche Information im Header kein Thema für mich, weil ich dafür den Apache nicht umkonfigurieren muss.
Ciao
Andreas
Hi Johannes,
Dein Server muss die Bilder mit dem Header
cache-control:no-store ausliefern.
und was nützt das, wenn mein Browser auf "Validate: never" konfiguriert ist?
Der Server hat lediglich beratende Funktion, was die Behandlung von HTTP-Content angeht.
Mir fällt als Möglichkeit höchstens ein, ein Script zu schreiben, dass die Header zu der Grafik hinzufügt.
Apache: mod_headers. Die technische Umsetzung wäre nicht das Problem - es funktioniert halt nur nicht zuverlässig.
Viele Grüße
Michael
Hi Michael
Dein Server muss die Bilder mit dem Header
cache-control:no-store ausliefern.und was nützt das, wenn mein Browser auf "Validate: never" konfiguriert ist?
Man kann nie verhindern, dass irgend ein Browser oder was auch immer die Daten im Cache speichern. Mann kann ihm aber sagen, dass er die Daten nicht speichern soll. Wenn er es trotzdem tut, ist das ein Problem den Besuchers, nicht des Seitenerstellers.
Schöne Grüße
Johannes
Am einfachsten ist es, wenn man an die Bildadresse eine Zufallszahl anhängt.
$zahl = rand(); // z.B.:1234
bild.jpg?$zahl
Ausgegeben wird: bild.jpg?1234
Und die Datei wird jedesmal neu geladen
Hi oFb,
Am einfachsten ist es, wenn man an die Bildadresse eine Zufallszahl anhängt.
$zahl = rand(); // z.B.:1234
bild.jpg?$zahl
Ausgegeben wird: bild.jpg?1234
Und die Datei wird jedesmal neu geladen
als kleine Verbesserung zu diesem (einzig wirksamen) Vorschlag würde ich noch "Zufall" durch "autoincrement" ersetzen - das hier ist ein klassischer Anwendungsfall für einen Wertegenerator, wie zwar nicht die konkreten Werte wichtig sind, aber deren Eigenschaft, eindeutig zu sein.
Ich würde also beispielsweise die aktuelle Uhrzeit auf "hinreichend genau" (Sekunden dürften in diesem Fall reichen) als Parameter anhängen, um sicherzustellen, daß das serverseitige Skript nicht "schlecht würfelt".
Viele Grüße
Michael