"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Aktuellhalten von Webseiten...

jb 25.05.2002 - 00:59 844 14
Posts

jb

Here to stay
Registered: May 2000
Location: /home/noe/
Posts: 3514
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 :D

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
Zitat von jb
Zitat von defe
eher mutter die auf ihre jungs aufpasst :eek: ;)

Coder ist da ... Wo sind die 200€/h Consulting-Gebühr ? :p

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&timestamp=$zeitdesbildes"....

vorteil dieser Lösung ist, dass du immer ein aktuelles bild hast, ohne auf caching verzichten zu müssen ;)

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Zitat von .deRElict.
Coder ist da ... Wo sind die 200€/h Consulting-Gebühr ? :p

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&timestamp=$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
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
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
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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
Registered: n/a
Location:
Posts: n/a
mozilla schickt ihn bei bildern erst bei einem expliziten reload.
ie ebenfalls :rolleyes:

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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
Registered: n/a
Location:
Posts: n/a
das bild ändert sich, aber der uri nicht.

natürlich stimmts - oder willst behaupten meine logfiles lügen :eek:

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat
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.

Zitat
natürlich stimmts - oder willst behaupten meine logfiles lügen :eek:

Vielleicht hast du sogar recht. Muss ich mir jetzt auch mal im Logfile anschauen :)

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
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 :eek:

ein timestamp wie oben beschrieben löst das problem auf jeden fall ;)

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat von .deRElict.
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
Registered: n/a
Location:
Posts: n/a
drum nimmtma als timestamp die uploadzeit des pics ;)

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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
Registered: May 2000
Location: /home/noe/
Posts: 3514
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. :rolleyes:


Hmm grad draufgekommen wie es genau gemeint is, versuchs mal, danke!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz