2009-05-04 3 views
0

A.) Wenn ich Code zum Löschen verwenden sagen wir Image123.jpg in Ordner Pics und ich ein anderes Bild hochladen und benennen Sie dieses Bild auch Image123.jpg und legen Sie es in Ordner Pics für einige Grund ist, dass das neue Bild angezeigt wird, aber es verwendet die Dimensionen des Bildes, das ich lösche. Verwenden Sie einen Repeater hier, um das Bild anzuzeigen .................Ersetzen von Bildern mit den gleichen Namen in Ordnern

B.) Wenn ich nur kopiere und Vergangenheit sage Image99.jpg in meinem Pics-Ordner alle bereit enthalten ein Image99.jpg dann ändert es natürlich das ursprüngliche. Aus irgendeinem Grund muss es zwischengespeichert werden, denn wenn ich meine Seite starte, wird immer noch das erste Bild angezeigt. Mit einer normalen Bildsteuerung hier über ................

Warum es A und B tut, ist ........ und wie kann ich gehen Sie um dieses ..... Problem A es wichtiger für mich, weil ich die Bilder Namen ändern müssen, wenn der Benutzer klickt auf "Change Logo" -Taste.

+0

Einige Code würde helfen. Ich würde gerne auf Ihr Repeater-Steuerelement und Ihren Code, der die Datei-Manipulation behandelt – roosteronacid

Antwort

3

Der Browser speichert die Bilder im Cache. Wenn Sie also ein Bild ersetzen, müssen Sie die URL ändern, die das Bild anfordert, um das neue Bild zu sehen.

Sie können dies entweder durch:

  1. selbst den Namen des Bildes ändern.

  2. Fügen Sie der URL eine Abfragezeichenfolge hinzu, die Sie ändern.

Wenn Sie der URL eine Versionsnummer hinzufügen, z. images/Image123.jpg?version=42 und erhöhen Sie die Versionsnummer, wenn Sie das Bild ersetzen, der Browser wird das neue Bild vom Server anfordern, da der Browser die Dateien basierend auf der vollständigen URL zwischenspeichert, nicht nur den Dateinamen.

+0

Wie würde ich das im Code - Hinzufügen von Versionsnummern, die ist. – Etienne

+0

Das hängt davon ab, wie Ihr Code aussieht ... Wie stellen Sie die URL des Bildes an erster Stelle ein? – Guffa

1

Wenn es tatsächlich ein Caching-Problem ist, könnten Sie Folgendes tun.

Programmatically:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

Deklaratives:

<%@ OutputCache Location="None" VaryByParam="None" %> 

von Webseiten zwischenspeichern, Sie neu zu erstellen, Informationen über nachfolgende Anforderungen so bedenken Sie vermeiden, dass sich dies negativ auf Ladezeiten als Caching beeinflussen können wird deaktiviert sein.

+0

MMM, danke, das könnte funktionieren, denke ich, aber ich will das nicht tun, da die Seite für Südafrika bestimmt ist und das Internet hier sehr langsam ist! – Etienne