Unzählige Möglichkeiten, ein Bild zu erneuern.
ich betreibe eine Webcam, die alle paar Minuten ein Bild auf
meine Website schreibt, immer unter dem selben Namen.
Wie schaffe ich es nun mit einem Javascript, eben dieses Bild
auf der Seite zu aktualisieren, ohne die ganze Seite mit
reload() zu erneuern?
Bei meinen Versuchen holt sich der Browser das Bild immer aus
dem Cache und nicht das aktualisierte aus der Datei!
Na ja, notfalls könntest du mit verschiedenen Dateinamen
arbeiten, also z.B. einen Zeitstempel hinzufügen, oder - besser -
einen Zähler. Der wird dann auf den Web-Seiten ebenfalls
mitgezählt (gleiches Zeitintervall!) und danach dann als neues
„SRC“-Attribut geschrieben. Daraufhin müsste der Browser merken,
dass die Datei noch nicht bekannt ist und sie von Server neu in
den Cache laden und anzeigen.
Allerdings müsstest du dann notfalls eine Fehlerbehandlung
einbauen, falls der Client zufällig schneller rechnet als der
Server und das Bild schon vorher haben möchte, unmöglich ist das
nicht…
Eine einfache Möglichkeit wäre es da dann vielleicht, das Bild
auf dem Server zweimal abzulegen (also auch gleich unter der
nachfolgenden Nummer) und danach jeweils vom neuen überschreiben
zu lassen. So bekommen übereifrige Clients zwar noch das alte
Bild mit der neuen Nummer, aber zumindest keine Fehlermeldung…
In diesem Szenario darf die Seite selbst allerdings nicht
gecachet werden, da du sonst die aktuelle Nummer im Java-Skript
nicht einstellen kannst.
Wenn du die Möglichkeit hast, dynamisch Seiten zu generieren,
dann hast du es sogar noch einfacher, da du dann natürlich auch
selbst die Bilder generieren lassen kannst. Dann kann dem Server
die gefragte Nummer egal sein und er sendet beim Zugriff einfach
immer das aktuelle Bild.
So, und jetzt noch 'ne Möglichkeit: Du setzt das Bild in einen
Frame und lädst nur den neu… Geht auch…
So, ein paar Lösungen, ein paar Probleme,
hilft dir das?
Stefan 