Browser-Cache, mal wieder? ...
Mothe
- asp.net
0 Viennamade0 Mothe
0 Sven Rautenberg0 Mothe
hallo,
habe hier wieder einmal ein "kleines" problem :(
folgendes szenario:
ein besucher hat die möglichkeit, 3 bilder upzuloaden, das folgend aufgebaut ist
UserID _ BildNr.(jpg/gif/png)
also z.b.:
1_1.jpg
1_2.jpg
1_3.gif
2_1.jpg
2_2.gif
usw. ...
wenn der user ein bild, das er bereits hochgeladen hat, löscht, dann ändern sich
die dateinamen auch, also z.b. der besucher löscht 1_2.jpg, dann wird aus 1_3.gif automatisch 1_2.jpg
soweit kein problem, nur ein problem tritt auf, wenn sich die dateiendung nicht ändert,
dann wird auf der nächsten seite (wo die bilder wieder angezeigt werden) noch die daten
aus (vermutlich) dem browser cache geladen, also zeigt er nicht das "neue" 2te bild an,
sondern das, was der user eigentlich gelöscht hat... :(
habe es schon mit:
<%
Response.Buffer = True
Response.Expires = 0
Response.ExpiresAbsolute = CDate("31.01.1982")
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"
%>
probiert, leider erfolglos :(
und auch mit einer Sleep-Komponente (dachte zuerst das das windows etwas länger braucht,
um die neuen Dateien richtig "anzeigen zu können) hat es nicht funktioniert...
woran liegt das? bzw., wie kann man dieses problem am besten umgehen?
gruß,
Mothe
Hallo!
habe es schon mit:
<%
Response.Buffer = True
Response.Expires = 0
Response.ExpiresAbsolute = CDate("31.01.1982")
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"
%>
Probiers mal mit:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum aus Vergangenheit
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // immer geändert
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
Beste Grüße
Viennamade
Hallo!
habe es schon mit:
<%
Response.Buffer = True
Response.Expires = 0
Response.ExpiresAbsolute = CDate("31.01.1982")
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"
%>Probiers mal mit:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum aus Vergangenheit
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // immer geändert
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0Beste Grüße
Viennamade
hi, hat es leider auch nicht gebracht, sofern ich das richtig in asp übersetzt habe *g*:
<%
Response.Buffer = True
Response.Expires = 0
Response.ExpiresAbsolute = CDate("31.01.1982")
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"
Response.AddHeader "cache-control", "no-cache"
Response.AddHeader "cache-control", "must-reviladate"
Response.AddHeader "cache-control", "post-check=0"
Response.AddHeader "cache-control", "pre-check=0"
%>
nach einer aktualisierung funktioniert es komischerweise, nur ist irgendwie umständlich, wenn der user immer zuerst F5 drücken muß, um die aktuellen bilder zu sehen... :-/
aber sofern keine andere möglichkeit besteht, werde ich wohl oder übel auf diese methode zurückgreifen müßen,
außer ich mach den reload auch irgendwie scriptpasierend
aber vielen dank für die antwort,...
gruß,
Mothe
Moin!
habe es schon mit:
<%
Response.Buffer = True
Response.Expires = 0
Response.ExpiresAbsolute = CDate("31.01.1982")
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"
%>probiert, leider erfolglos :(
Es nutzt dir nichts, wenn du die HTML-Seite als nicht-cachebar auslieferst - die BILDER müssen als nicht-cachebar oder unter einer neuen URL ausgeliefert werden.
Das bedeutet: Entweder kannst du den Server standardmäßig sio konfigurieren, dass er Bilder ebenfalls mit diesen Expires-Headern ausliefert, oder du schreibst ein ASP-Skript, welches die Bilder inkl. Expires-Headern durchschleust.
Die Alternative mit der URL wäre, dass du jeder BildURL noch einen sich ständig ändernden Parameter dranhängst. Dann muß der Browser auch jedesmal beim Server anfragen.
Methode 1 ist die saubere, Methode 2 dürfte wahrscheinlich die einfachere sein.
- Sven Rautenberg
Moin!
habe es schon mit:
<%
Response.Buffer = True
Response.Expires = 0
Response.ExpiresAbsolute = CDate("31.01.1982")
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"
%>probiert, leider erfolglos :(
Die Alternative mit der URL wäre, dass du jeder BildURL noch einen sich ständig ändernden Parameter dranhängst. Dann muß der Browser auch jedesmal beim Server anfragen.
Methode 1 ist die saubere, Methode 2 dürfte wahrscheinlich die einfachere sein.
- Sven Rautenberg
vielen dank für die antwort :)
wie in meinem 1. beitrag schon erwähnt, habe ich das auch schon versucht, zuerst leider erfolglos... bis ich darauf gekommen bin, das ich das "Randomize" vergessen habe, war einfach nur ein dummer flüchtigkeitsfehler :(
am server selbst kann ich leider nicht allzuviel konfigurieren, ist im prinzib nicht meiner :)
aber so funktioniert es auch wunderbar (und da es größtenteils nur kleine bilder sein, und auch maximal 3 stück, ist die performance auch noch sehr gut)
gruß,
Mothe