![]() |
[JS]Bilder aktualisieren ohne Speicherproblem
HI @all,
ich möchte in einer Webseite ein Bild immer wieder neu laden. Eine Voraussetzung ist, dass die Webseite möglichst lange angezeigt werden kann (also wenn der Browser 100% vom RAM belegt hat ist Ende). Dazu benutze ich ein JS-Snippet, welches im Internet relativ häufig als Vorschlag gefunden werden kann. Bei mir sieht das dann so aus:
Code:
Was der Schnipsel macht, dürfte klar sein. Altes Bild auslesen, Zeitstempel aktualisieren und als neues Bild ausgeben. Nun soll das Bild alle 1 Sekunde aktualisiert werden. Das ist ein Problem, denn das alte Bild bleibt weiterhin im Speicher und das neue kommt gleich noch mit dazu.
source = document.getElementByID("meinBild").src;
limiter = source.indexOf("?"); if (limiter != -1) { source = source.substr(0, limiter); } source = source + "?" + (new Date()).getTime(); document.getElementByID("meinBild").src = source; Um das zu verhindern hatte ich mein Bild (zur Zeit generiert von PHP) mit ein paar zusätzlichen Headern bestückt:
PHP-Quellcode:
Nur leider hilft das nicht weiter. Die Bilder werden immer noch vom Browser mitgecacht und belegen weiterhin Speicher. Dieses Phänomen tritt nicht nur bei Firefox auf, sondern auf bei Google Chrome. Somit muss es am Javascript liegen.
header("Content-Type: image/jpeg");
header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); Wie bekomme ich jetzt das alte Bild aus dem Speicher? Bernhard |
AW: [JS]Bilder aktualisieren ohne Speicherproblem
Das Caching ist eine Browser-Sache und hat weniger mit JS zu tun. Ich denke auch nicht, dass ein Browser die vorher angezeigten Bilder vergessen will, allein schon aus Gründen der Performance.
Warum genau willst du denn ein Bild alle x Sekunden aktualisieren? Vielleicht lässt sich hier ein anderer Ansatz finden, der nicht das genannte Problem beinhaltet. |
AW: [JS]Bilder aktualisieren ohne Speicherproblem
Dort soll ein Bild einer Webcam angezeigt werden. Das Bild kommt von der Webcam und wird auf dem Server gespeichert. Jetzt soll der Client das nur noch abholen. Die verkürzten Zeiträume sind extra so gewählt, dass man nicht mindestens 15 Minuten warten muss, bis etwas passiert (speichermäßig). Zur Zeit habe ich ein ganz einfaches PHP-Skript angewiesen, auf einem schwarzen Hintergrund eine Zahl anzuzeigen, die die Anzahl der Bildaufrufe wiedergibt.
Bei meiner Recherche im Internet habe ich noch die Möglichkeit gefunden, das ganze mittels eines IFrames zu lösen. Das werde ich dann mal versuchen. Hauptsache, der Browser speichert das alte Bild nicht unendlich lange mit. Bernhard ADD: Ich habe das ganze jetzt mit einem IFrame gelöst. Das IFrame lädt das Bild und lässt sich wunderbar per JS aktualisieren. |
AW: [JS]Bilder aktualisieren ohne Speicherproblem
IFrames wären wahrlich nicht meine nächste Wahl gewesen ;) dann würde ich da doch lieber Flash nutzen und dafür schnell was schreiben.
|
AW: [JS]Bilder aktualisieren ohne Speicherproblem
Nun ja, Flash geht bei mir weniger, weil ich nicht das Geld habe, mir Flex Builder zu besorgen. Außerdem sind meine Flash-Kenntnisse aüßerst dürftig. Ich würde das so auf die Schnelle überhaupt nicht hinbekommen.
Adobe Flex Builder Standard kostet ja nur 208€ und die Premium-Variante nur 600€. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz