Clemens: Webcam - Bild automatisch neu laden, nicht aber restliche Page

Hallo Leute!

Ich habe folgenden Code für eine Seite mit Webcam-Bild:

<html>
<head>
  <title>WebCam</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta http-equiv="Pragma" content="no-cache">

<script language="Javascript">
    <!--
      function refreshCam(){
        rfsh = new Date() ; rfsh = "?"+rfsh.getTime()
        document.images["webcam"].src = "webcam.jpg"+rfsh
        setTimeout("refreshCam()", 5000)
      }
    //-->
  </script>
</head>

<body>
  <img src="webcam.jpg" name="webcam" width="176" height="144" border="0" alt="Webcam">

<script language="JavaScript">
    <!--
      if( document.images )
        refreshCam();
    //-->
  </script>
</body>

</html>

Meine Fragen dazu:

  • Ist <meta http-equiv="Pragma" content="no-cache"> überhaupt notwendig, wenn das Bild per webcam.jpg?789456...immer_anders... über JS geladen wird?

  • Gibt es eine Möglichkeit, dies ohne JS zu realisieren. z.B. via <meta http-equiv="Refresh" content="3; url=/webcam/index.html">, wenn ja, ist das sinnvoll, gibt es hier andere Probleme? Dann muss wohl der gesamte Code neu geladen werden, ein Laden des einzelnen Bilds ist wohl nur mit JS möglich. Was passiert bei <meta http-equiv="Refresh"... und <meta http-equiv="Pragma" content="no-cache"> werden andere nicht dynamische Seitenteile (z.B. Navigations-Grafiken) auch jedesmal neu geladen oder weden die dennoch gecachet? <meta http-equiv="Pragma" content="no-cache"> bezieht sich afaik nur auf den Code in dem es steht, oder?

  • Gibt es weitere und evtl. optimalere Möglichkeiten das Bild automatisch neu zu laden, nicht aber die restliche Page?

Clemens

  1. Nachtrag:

    Statt <meta http-equiv="Pragma" content="no-cache"> muss es in der zweiten Frage <meta http-equiv="cache-control" content="no-cache"> oder <meta http-equiv="expires" content="0"> heisen.

    Clemens

    1. Steck das Bild in eine sich laufend neu ladende Seite <meta http-equiv=refresh..> in einem iFrame. Fertig !

      1. Steck das Bild in eine sich laufend neu ladende Seite <meta http-equiv=refresh..> in einem iFrame. Fertig !

        Mit i-Frames werden aber "ältere" Netscape-User nicht ganz glücklich ;-)

        Clemens

        1. hi,

          Mit i-Frames werden aber "ältere" Netscape-User nicht ganz glücklich

          Vielleicht nutzt es: Bildertausch mit Javascript, beim Zuweisen der Source jeweils eine Zufallsquery an die Bildurl drannehaengen, so dass Browser glaubt, es handelt sich um ein neues Bild. Hab mal gehoert, das sowas klappt.

          Gruesse  Joachim

          1. Vielleicht nutzt es: Bildertausch mit Javascript, beim Zuweisen der Source jeweils eine Zufallsquery an die Bildurl drannehaengen, so dass Browser glaubt, es handelt sich um ein neues Bild. Hab mal gehoert, das sowas klappt.

            Hi Joachim!

            Der Code dazu steht im ersten Posting ;-) Dennoch Danke und 'ne gute Nacht!

            Clemens

  2. Liebes Form!

    Noch ein Frage zu den anderen bisher unbeantworteten ;-)

    Was bringt eigentlich:

    if (document.images)
      refreshCam();

    document.images liefert doch immer ein Objekt zurück, auch wenn kein Bild in der HTML-Seite ist? Könnte man dann doch genauso mit onLoad machen, oder?

    Vielleicht fällt jemdand dazu und zu den anderen Fragen noch wast ein, wäre nett!

    Clemens

    1. Was bringt eigentlich:

      if (document.images)
        refreshCam();

      document.images liefert doch immer ein Objekt zurück, auch wenn kein Bild in der HTML-Seite ist? Könnte man dann doch genauso mit onLoad machen, oder?

      document.images ist erst ab NS3(?) definiert. D.h. NS2 würde einen Fehler bringen. Das wird so vermieden.

      By
      Reinhard

  3. Hallo Clemens!

    • Ist <meta http-equiv="Pragma" content="no-cache"> überhaupt notwendig, wenn das Bild per webcam.jpg?789456...immer_anders... über JS geladen wird?

    Eigentlich ist es nicht notwendig.

    • Gibt es eine Möglichkeit, dies ohne JS zu realisieren. z.B. via <meta http-equiv="Refresh" content="3; url=/webcam/index.html">, wenn ja, ist das sinnvoll, gibt es hier andere Probleme?

    Die Verwendung des Meta-Tags zum Refresh ist nicht sinnvoll, da das Bild u. U. aus dem Cache des Browsers oder eines Proxy-Servers geladen wird. Auch wenn du das durch weitere Meta-Tags zu verhindert versuchst, ist noch lange nicht gesagt, daß es überall funktioniert.

    • Gibt es weitere und evtl. optimalere Möglichkeiten das Bild automatisch neu zu laden, nicht aber die restliche Page?

    Java-Applets sind weit verbreitet.

    http://www.netcamera.de/info/refresh.htm

    Viele Grüsse
    Harald