Archiv verlassen und diese Seite im Standarddesign anzeigen : png auf keinen fall cachen
hey
wie kann man verhindern das bilder gecached werden?
ich hab ein kleines php-script geschrieben und mit mozilla ist es auch kein problem mittels
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
auch ohne probleme verhindert werden, daß das alte bild (eben nicht das neu erstellte) geladen wird
mit anderen browsern (explorer z.B., alte netscapes, ..) ist das aber nicht der fall
kann man bei einem bild auch noch mal explizit angeben das es nicht aus dem cahce gezogen werden soll?
moe
kann man bei einem bild auch noch mal explizit angeben das es nicht aus dem cahce gezogen werden soll?
Ja, in den jeweiligen Browser settings :)
Warum willst du das Caching verhindern?
so long,
BlueJay
Ja, in den jeweiligen Browser settings :)
Warum willst du das Caching verhindern?
so long,
BlueJay
weil das bild dynamisches erzeugt wird nehm ich an
du kannst zusätzlich noch mittels PHP(oder eine andere Scriptsprache) einen Header ausgeben:
<?php
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
?>
Siehe http://de.php.net/header
Wenn du kein PHP zur Verfügung hast kannst du auch andere Scriptsprachen verwenden. Einfach mal in google nach "header +no-cache" +evtl. bevorzugte Scriptsprache suchen.
Grüße
nEox
achso, falls du wirklich nur dieses eine Bild cachen willst kanst du auch eine zufällige Zahl übergeben.
Z. B. mit PHP:
<img src="bildname.endung?<?=time();?>">
wobei <?=time();?> die zufällige Übergabe ist.
*edit*
ok time() ist nicht wirklich "zufällig" aber es erfüllt seinen Zweck.
Grüße
nEox
Ja, in den jeweiligen Browser settings :)
Warum willst du das Caching verhindern?
an die komme ich natürlich nicht dran (an die browser settings)
ist ein dynamisch erzeugtes bild
ich denke ich werd einfach noch wie beschrieben noch mehr in die header reinpacken (vorallem das mit dem vergangenen datum)
moe
ich denke ich werd einfach noch wie beschrieben noch mehr in die header reinpacken (vorallem das mit dem vergangenen datum)
Nimm lieber die Variante mit dem neuen Bildnamen, der Cache kann bei Bildern hartnäckig sein.
Gibt es eine Möglichkeit, die Bilder vorzuladen? Ist deren Aussehen vorher festlegbar? Kann man sie in Blöcke zerlegen und wieder zusammenpuzzlen, um an das aktuelle Bild zu kommen?
Jede der oben angegebenen Möglichkeiten bietet Lösungsstrategien, bei denen der Cache erst mal wurscht ist, möglicherweise sogar ganz nützlich.
Daher die Zusatzfrage.
so long,
BlueJay
variante neuer bildnamen ... ok
mal ganz doof gefragt (ich mach php wirklich nur so dass es halt funktioniert, hab da kaum ne ahnung von):
darf denn ein php programm ein beliebiges file erstellen? (schreibrechte) oder ist da meine herangehensweise sowieso komplett falsch
zur zeit:
php-script ruft externes programm auf, das erstellt bild und speichert das in diesem verzeichniss als bild.png ab (z.B.) (dieser bild datei hab ich vorher lese und schreibrechte gegeben, sodaß es geschrieben werden kann)
und dann übergibt mein php-script einfach diesen dateinamen (<img src="bild.png" ...> )
moe
hallo,
in dem Fall kannst du auch das PHP-Skript direkt als Source-Pfad angeben.
D.h.:
<img src="phpdatei.php?<?=time()?>">
In der "phpdatei.php" muss dann das Bild erstellt werden(ist ja zur Zeit auch schon so). Dann musst du das Bild einfach ausgeben.
Damit der Browser auch kapiert das er ein Bild anzeigen soll und keine PHP-Datei muss noch ein anderer Header mitgegeben werden:
header ("HTTP/1.1 200 OK", true);
header ("Date: ". gmdate("D, d M Y H:i:s GTM"), true);
header ("Server: Apache/1.3.27", true);
header ("Accept-Ranges: bytes", true);
header ("Content-Type: image/jpeg", true);
Das Ganze gibts hier nochmal erklärt:
http://www.drweb.de/php/icons_dynamisch.shtml
Ein Problem könnte die Serverperformance werden(da bei jedem Aufruf ein Bild berechnet werden muss) wenn sehr viele Zugriffe auf die Seite stattfinden.
Dann könntest du das Bild zwischenspeichern und in dem Skript dann entscheiden ob das zwischengespeicherte Bild genommen werden soll oder ein neues generiert werden soll. ( Im Pinzip kann man das dann per "if(file_exists("tempbild.bild")) // bild ausgeben else //berechne" machen )
Grüße
nEox
PS: So werden häufig auch die ganzen Werbebanner erstellt, nur das dann außer dem Erstellen des Bildes auch gleich noch ein Datenbankeintrag hochgezählt wird. Dem Skript kann man auch noch weitere Variablen mitgeben (<img src="phpdatei.php?zeige=123">). Hier kann dann das Skript entscheiden welches Bild der User genau sehen soll.
@BlueJay
also um Bilder vorzuladen kann man Sie z.B. per <img src="bildname" height="0" width=""> auf einer vorhergeheneden (z. B. Intro-)Seite laden.
Das Gleiche geht auch mit Javascript.
<script type="text/javascript" language="JavaScript">
<!--
bild = new Image();
bild.src = "bildpfad";
//-->
</script>
Allerdings bringt das wenig wenn in den Browsereinstellungen das Caching deaktiviert wurde.
Im Netz finden sich aber auch einige solcher Skripte die sogar mit Ladebalken Grafiken vorladen. Ob eine Seite die sowas braucht wirklich sinnvoll ist, ist ne andere Frage :)
Grüße
nEox
@BlueJay
(Bilder vorladen)
Das Gleiche geht auch mit Javascript.
Genau das wäre einer meiner Vorschläge gewesen, wenn die Bilder schon irgendwo fertig rumliegen.
Allerdings bringt das wenig wenn in den Browsereinstellungen das Caching deaktiviert wurde.
Deshalb bitte ich in regelmäßigen Abständen immer ganz lieb, diesen zu reaktivieren.
moedule sollte so was nur recht sein.
Im Netz finden sich aber auch einige solcher Skripte die sogar mit Ladebalken Grafiken vorladen. Ob eine Seite die sowas braucht wirklich sinnvoll ist, ist ne andere Frage :)
Den Ladebalken? Bei lahmen Leitungen schon mal nötig.
Und ob Seiten, die Bilder vorladen, sinnvoll sind?
Chaqu'un a son gout! :rolleyes: :p :D
so long,
BlueJay
Den Ladebalken? Bei lahmen Leitungen schon mal nötig.
Und ob Seiten, die Bilder vorladen, sinnvoll sind?
Chaqu'un a son gout! :rolleyes: :p :D
ladebalken halte ich eher nicht für sinnvoll, naja jeder wie er mag
das bild wird ja nicht direkt vom php-script erstellt, sondern von gnuplot
es dreht sich bei mir auch nur um ein einziges bild, es geht auch nicht um geschwindigkeit, ist im rpinzip gerade wurscht, aber es darf halt nicht immer erst der reload-button gedrückt werden müssen
ich hab sjetzt aber mit den header.geschichten gemacht und damit scheint es ganz gut zu funktionieren
moe
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.