Hallo!
Ich habe in meiner ASP.NET App ein Problem mit dem Client Caching und zwar folgendes: Ich fordere von einem Web-Service Landkarten für bestimmte Koordinaten an und speichere diese als Bilddatei wobei als Name die Session-ID dient. Mein Problem ist jetzt das dieses File vom Browser gecached wird, d.h.
wenn ich eine neue Karte anfordere, wird die alte Karte verwendet, da ja bereits ein File mit dem gleichen Namen im Cache vorhanden ist.
Weiß jemand wie man in code dieses Browser Caching deaktivieren kann?
Würde mir echt helfen 😉
Danke
Da müsstest Du schon fasst dem Browser mit einem Plug-In den Befehl geben beim Laden vorgängig den Cache zu leeren.
Ansonsten fällt mir auch nichts besseres ein.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Hallo,
normalerweise
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
aber das verhindert nur das Cachen der Seite. Das Bild ist aber ein Extra-Request, weiß nicht obs dann funktioniert. Wenn Du Dein Bild nicht speicherst, sondern direkt über eine ashx-Datei auslieferst, kannst Du den Code aber in der ashx unterbringen.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Erstmal Danke für die schnellen Antworten!
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Die Zeile funktioniert nicht, hab ich auch schon probiert, weil eben das Bild wie du schon gesagt hast ein Extra-Request ist.
Mit ashx Dateien bin ich leider nicht vertraut, wird mir aber wohl nichts anderes überbleiben
Also meine Erfahrung ist, wenn man Caching deaktiviert (über META tags) werden auch die Bilder nicht gecached -- probier mal <meta http-equiv="cache-control" content="no-cache"> und <meta http-equiv="Pragma" content="no-cache"> direkt im Header deiner aspx seite.
Gruß
DCoder
P.S.: Wobei ich das Deaktivieren nicht empfehlen würde -- wahrscheinlich macht es mehr Sinn, das Bild nicht immer abzuspeichern sondern in einer seperaten Seite per Response an den Client zu schicken (dann wirst du auf keinen Fall Cache Probleme bekommen, Browserunabhängig), siehe Bilder dynamisch generieren (ASP.NET)
Hallo CBichler,
häng einfach an den Namen des Bildes eine Zufallszahl (oder die aktuelle Uhrzeit).
Beispiel:
bild.jpg?4567283
Der Browser sollte das Bild dann nicht mehr cachen.
Oder man benutzt gleich die Response Variante, dann muss man nicht permanent mit temp files rumhantieren
[EDIT]sry @.Kai - Merk grad, dass das keine temp file variante ist 😉 -- find die Response Lösung jedoch besser 😄[/EDIT]
Hallo,
da man ja eigentlich nur ein Bild zurückliefern will, braucht man hier nicht unbedingt eine Page, es reicht ein einfacher IHttpHandler:
ms-help://ms.netframework.v20.de/dv_ASPNETCon/html/90953da6-eb4e-438a-8d3b-1963ec5e5b4b.htm
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
ich hab mich jetzt für kais lösung entschieden..
manchmal seh ich echt vor lauter bäumen den wald nicht =)