jb
Here to stay
|
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
|
Guest
Deleted User
|
eher mutter die auf ihre jungs aufpasst
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
|
Vir@s
Code Monkey
|
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 Jep - sobald du einen sich ändernden Parameter im Aufruf hast wird alles immer automatisch reloaded Also wie deRelict gsagt hat, einfach nur timestamp oder ähnliches! Wie der Parameter heißt ist übrigens egal Mfg, Vir@s
|
noledge
CWNE #540
|
sollts nicht genügen, einen filename über die header-funktion zu setzen? 2 unterschiedliche filenames tauscht er ned aus, zumindest ned bei mir
|
Ringding
Pilot
|
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?
|
Guest
Deleted User
|
mozilla schickt ihn bei bildern erst bei einem expliziten reload. ie ebenfalls
|
Ringding
Pilot
|
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
Bearbeitet von Ringding am 25.05.2002, 11:03
|
Guest
Deleted User
|
das bild ändert sich, aber der uri nicht. natürlich stimmts - oder willst behaupten meine logfiles lügen
|
Ringding
Pilot
|
das bild ändert sich, aber der uri nicht. Lies nochmal im obersten Post nach. Das Bild ändert sich nicht, nur die URL. Ist sonst ein ganz normales statisches IMG. natürlich stimmts - oder willst behaupten meine logfiles lügen Vielleicht hast du sogar recht. Muss ich mir jetzt auch mal im Logfile anschauen
|
Guest
Deleted User
|
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
|
Ringding
Pilot
|
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).
Bearbeitet von Ringding am 25.05.2002, 11:28
|
Ringding
Pilot
|
ein timestamp wie oben beschrieben löst das problem auf jeden fall Der löst vielleicht das Problem, dass kein falsches Bild kommt, aber wenn es sich nicht geändert hat, soll's ja eben nicht neu geladen werden, wie der jb im ersten Post geschrieben hat. Die Bilder werden nicht generiert, die sind einfach nur als Files da.
|
Guest
Deleted User
|
drum nimmtma als timestamp die uploadzeit des pics
|
Ringding
Pilot
|
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
|
jb
Here to stay
|
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!
|