kostenloser Webspace werbefrei: lima-city


Automatische Aktualisierung von Bildern

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    mbc-vogelweide

    Kostenloser Webspace von mbc-vogelweide

    mbc-vogelweide hat kostenlosen Webspace.

    Hallo zusammen,

    ich habe eine Frage bzgl. dem automatischen Aktualisieren von Bildern auf der Homepage. Wir haben im Mitgliederbereich 4 Bilder von Webcams eingebunden. Diese werden von der Webcam via FTP in einen Ordner gespeichert - haben immer den gleichen Namen & neu überschreibt alt. Diese werden dann lediglich in die HP eingebunden.

    Das Problem ist, im Edge und Fire Fox funktioniert die automatische Aktualisierung der Bilder. Im Opera und Chrome macht er zwar den Refresh, aber die Bilder werden nicht aktualisiert. Sprich der Cache wird nicht gelöscht wie eigentlich angegeben (hoffe das Stimmt so wie ich es formuliere)

    Ich habe folge Meta Tags im Header dieser einen Seite eingebunden:

    <meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate, max-age=0" />
    <meta http-equiv="refresh" content="5">

    Die 5 sekunden sind fürs Testen gewollt, die Bilder werden dann im Live System nicht so oft aktualisiert.

    Vielleicht hat jemand eine Idee, wie ich chrome und Opera dazu bekomme auch für diese eine Seite den Cache neu zu laden....

    Danke
    Reinhold

    Beitrag zuletzt geändert: 28.3.2018 20:53:06 von mbc-vogelweide
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h***********r

    Die Meta Tags sind dafür recht ungeeignet:

    Caching headers are unreliable in meta elements; for one, any web proxies between the site and the user will completely ignore them. You should always use a real HTTP header for headers such as Cache-Control and Pragma. ### Chrome and Firefox specifically does not work with these as you would expect, if at all.

    Über PhP ist das ganze besser:
    <?php
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    ?>


    Beitrag zuletzt geändert: 28.3.2018 21:03:29 von horstexplorer
  4. Autor dieses Themas

    mbc-vogelweide

    Kostenloser Webspace von mbc-vogelweide

    mbc-vogelweide hat kostenlosen Webspace.

    Hi,

    erstmal danke für die Antwort. Ich habe es jetzt mal in den PHP Code eingefügt. Aber gleiches Bild. IE und FF aktualisieren, Opera und Chrome nicht.

    Gruß Reinhold
  5. Ich empfehle für solche Aufgaben Ajax.
    Relevant wäre dann:
    xmlhttp.setRequestHeader('Cache-Control', 'no-cache');
    xmlhttp.send();

    Für meta-tags siehe:
    http://wiki.selfhtml.org/wiki/HTML/Kopfdaten/meta
    <meta http-equiv="expires" content="0">
    oder
    <meta http-equiv="expires" content="Sat, 12 Jun 2010 12:00:00 GMT">

    oder ergänze den Code von horstexplorer noch mit
    header("Expires: Sat, 12 Jun 2010 12:00:00 GMT");


    Beitrag zuletzt geändert: 28.3.2018 23:41:20 von timebandit
  6. Autor dieses Themas

    mbc-vogelweide

    Kostenloser Webspace von mbc-vogelweide

    mbc-vogelweide hat kostenlosen Webspace.

    Hi,

    da ich mich mit der Materie nicht sonderlich auskenne, habe ich nun folgendes Versucht. Ich habe den Request via Button zum Testen eingebunden - hat nichts geändert. Auch den Code mit dem Header angepasst - ebenfalls keine Besserung.

    so habe ich den Button belegt:

    <button type="button" onclick="loadDoc()">Refresh</button>
    <script>
        function loadDoc() {
        var xhttp = new XMLHttpRequest();
        xhttp.setRequestHeader('Cache-Control', 'no-cache');
        xhttp.send();
        }
    </script>



    header("Expires: Sat, 12 Jun 2010 12:00:00 GMT");


    Gruß Reinhold
  7. Die Html-Seite und das eingebundene Bild werden vom Cache unabhängig voneinander behandelt.
    Egal, ob man nun mit PHP irgendwelche Header setzt oder Meta-Tags ins Markup einfügt, das wirkt sich alles nur auf die Html-Datei aus, während das Bild munter weiter im Cache gespeichert bleibt.

    Das Ziel ist also, den no-cache Header für das Bild zu setzen und nicht für die Html-Datei.
    Am einfachsten geht das in einer .htaccess Datei:
    <Files bilddatei.jpg>
      Header add Cache-Control "no-cache"
    </Files>
    ^^ Der Dateiname muss noch angepasst werden.

    Theoretisch könnte man auch PHP verwenden um das Bild auszuliefern und dabei die Header zu setzen, einfacher dürfte aber der Weg über .htaccess sein.
  8. Was für ein unnötiger Aufwand. Vor allem, da es ja nicht um die Seite an sich geht. Es geht um ein eingebundenes Bild.

    Wenn du eh die komplette Seite neu lädst binde das Bild einfach als "image.bla?t=<?=microtime();?>" ein.
    Zumindest solange es mit .php endet. Ansonsten kannste auch andere Dateien (wie mit der Endung .html) via "AddHandler" in der .htaccess dem PHP-Parser zuweisen.
  9. muellerlukas schrieb:
    Was für ein unnötiger Aufwand. Vor allem, da es ja nicht um die Seite an sich geht. Es geht um ein eingebundenes Bild.
    .
    Da hast du sicherlich recht. Berücksichtigt man den entstehenden Traffic, dann ist Ajax die bessere Variante.
    Ich habe auf meiner Baustellehttps://www.timebandit.lima-city.de/ajax.php
    einen Lösungsvorschlag für Reinholds Problem.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!