URL: https://www.overclockers.at/coding-stuff/aktuellhalten_von_webseiten_35327/page_1 - zur Vollversion wechseln!
Hab mal wieder einen kleinen Kampf mit HTML/PHP/MySQL
Eine Webseite wird dynamisch generiert (Übergabe einer ID mit PHP) und liest eine Datenbank aus, in der auch ein Dateiname von einem Photo drinnensteht. Auf der aufgerufenen Seite wird ein wenig Text (ebenfalls aus der Datenbank) und eben auch das Bild. Wenn man auf das Bild klickt kommt man auf das selbe Bild nur mit höherer Auflösung und genauso wieder zurück zum Vorschaubild. Beide Ansichten haben das selbe Problem weil sie ja vom selben PHP Script generiert werden (nur mit anderen Parametern eben)
Ein Problem krieg ich jetzt wenn ich ein anderes Bild nehmen will, dann kommt natürlich mal das alte, weils ja überall zwischengespeichert wird.
Mein erster Versuch waren Metatags, die das Cachen verhindern sollten, leider ohne Erfolg
Als nächstes hab ich ein automatisches Reload (auch mit Metatag) eingebaut, das die aufgerufene Seite nach 1s einmal aktualisiert.
Leider ist auch dieser Versuch gescheitert, das Ergebnis ist das das alte Bild angezeigt wird, nach 1s dann Reload und das neue Bild is da.
Hab gerade noch versucht den Reload-Wert auf 0 zu setzen, leider auch ohne Erfolg.
Hat wer vielleicht eine Idee, wie man das lösen könnte so daß nur noch das wirklich aktuelle Bild angezeigt wird? 56k Modem User würdens mir danken, das Vorschaubild is zwar nur je ca. 10-20k, dafür das höher aufgelöste so um die 100-150k. Außerdem schauts blöd aus wenn er plötzlich ein anderes Bild reinladet...
WO sind die CODER
Zitat von jbZitat von defeeher mutter die auf ihre jungs aufpasst![]()
Zitat von .deRElict.Coder ist da ... Wo sind die 200€/h Consulting-Gebühr ?
Wennst auf die non-cache-headers nicht vertraust, bau einen timestamp in die url ein ... entweder uploadzeit des bildes, oder die aktuelle zeit =time();
also ... "bild.php?id=$id×tamp=$zeitdesbildes"....
vorteil dieser Lösung ist, dass du immer ein aktuelles bild hast, ohne auf caching verzichten zu müssen
sollts nicht genügen, einen filename über die header-funktion zu setzen? 2 unterschiedliche filenames tauscht er ned aus, zumindest ned bei mir
Bitte wie stellen die Leute ihre Browser ein? Jeder normale Browser checkt auf der Standardeinstellung, ob sich die Seite geändert hat (mittels If-Modified-Since Header). Und wenn die Seite dynamisch ist, dann hat sie sich aus der Sicht des Servers geändert und wird neu geschickt. Also was ist daran so kompliziert?
mozilla schickt ihn bei bildern erst bei einem expliziten reload.
ie ebenfalls
Aber die Bilder ändern sich ja gar nicht. Das Bild soll ja gar nicht neu geladen werden. Es soll nur das richtige genommen werden.
Außerdem stimmt das nicht :P
das bild ändert sich, aber der uri nicht.
natürlich stimmts - oder willst behaupten meine logfiles lügen
Zitatdas bild ändert sich, aber der uri nicht.
Zitatnatürlich stimmts - oder willst behaupten meine logfiles lügen![]()
also so wie ich den post verstanden hat, hatta a php-script das ein image generiert (für verschiedenene größen).
da ist der URI derselbe, aber das bild maybe nicht
ein timestamp wie oben beschrieben löst das problem auf jeden fall
Also bei mir lädt der IE jedes einzelne Bild nach (mit If-Modified-Since, kriegt daher also meistens 304 zurück und muss es nicht komplett nachladen). Cache Setting ist auf Automatically (default).
Zitat von .deRElict.ein timestamp wie oben beschrieben löst das problem auf jeden fall
drum nimmtma als timestamp die uploadzeit des pics
Naja, na gut, wenn man im Script für's img den Last-Modified-Header setzt, dann sollte es so auch gehen. Aber es ist in diesem Zusammenhang sinnlos, weil die Pics eh statisch sind.
Hab grad ausprobiert, was der Mozilla macht: Wenn ein File ein Last-Modified hat, dann lädt er's auf der Standardeinstellung ("when page is out of date") überhaupt nicht nach. Das könnte Kopfzerbrechen bereiten. Ohne Last-Modified wird's aber auf jeden Fall immer mit If-Modified-Since gecheckt. Aber einen Unterschied zwischen Bildern und Text gibt's nicht, weder bei IE noch bei Mozilla. Zum Glück, das wär ja noch schöner
Irgendwas habt ihr falsch verstanden, das Script generiert kein Bild, die beiden Bilder (ein kleines zur Vorschau und ein großes mit höherer Auflösung) gibt es schon. Die Bilder heißen z.B. bild1a.jpg und bild1.jpg, wobei das mit dem a das kleine Vorschaubild is.
Timestamp vom Bild einbaun? Da check ich den Sinn nicht ganz werd aber weiter versuchen das irgendwie hinzubekommen.
Hmm grad draufgekommen wie es genau gemeint is, versuchs mal, danke!
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025