Marco Schleicher: SSI #exec alle 20sec ausführen ohne reload der ganzen seite???

Hallo!

Ich habe folgendes Problem:
Ich führe ein cgi Script mit <!--#exec cgi="/cgi-bin/news.cgi" --> in meiner html datei aus. Dieses Skript gibt einen text aus. Das ganze funktioniert auch. Nur ich will diesen Text alle 20sec neu laden, d.h. alle 20sec muss eine Anweisung erfolgen <!--#exec cgi="/cgi-bin/news.cgi" --> erneut auszuführen! Wie mache ich das? Gibt es da eine Möglichkeit mit JavaScript oder PHP?? Ich kenn mich da nicht so aus! Aber eins will ich vermeiden, nämlich die ganze Seite neu laden, das kann jeder mit meta-refresh, oder dann ganz einfach eine framesseite erstellen und das entsprechenede frame neu laden! Das auf keinen Fall! Wer kann mir da helfen?? Herzlichsten Dank für alle Vorschläge!

  1. Ich führe ein cgi Script mit <!--#exec cgi="/cgi-bin/news.cgi" --> in meiner html datei aus. Dieses Skript gibt einen text aus. Das ganze funktioniert auch. Nur ich will diesen Text alle 20sec neu laden, d.h. alle 20sec muss eine Anweisung erfolgen <!--#exec cgi="/cgi-bin/news.cgi" --> erneut auszuführen! Wie mache ich das? Gibt es da eine Möglichkeit mit JavaScript oder PHP?? Ich kenn mich da nicht so aus! Aber eins will ich vermeiden, nämlich die ganze Seite neu laden, das kann jeder mit meta-refresh, oder dann ganz einfach eine framesseite erstellen und das entsprechenede frame neu laden! Das auf keinen Fall! Wer kann mir da helfen?? Herzlichsten Dank für alle Vorschläge!

    Ich denke, hier gibt's nur eine Möglichkeit:

    den Inhalt dieses cgi-scripts in einen IFrame oder Layer zu laden, bzw. für NS 6.x in einen HTML-Tag. Mit JS kann man dann den Inhalt der Layers/Frames/Tags alle 20 sekunden erneuern, mit einem window.setTimeout().

    Hoffe, dass dies Hilft

  2. Hallo Phillip!

    Erstmal vielen Dank für den Lösungsvorschlag!
    Aber ich hab's einfach irgendwie doch nicht hingekriegt, weil ich mich mit java nicht so auskenne. Also ich hab das jetzt mit Hilfe eines Tags probiert, weil es für alle Browser funktionieren soll:

    <script language=javascript>
    function textreload() {
    document.all.text.src = 'http://url-zum-script/cgi-bin/news.cgi?'; }
    window.setTimeout("textreload()",2000);
    //-->
    </script>
    <p id="text"><!--#exec cgi="/cgi-bin/news.cgi" --></p>

    Was ist daran falsch? Ich hab schon den #exec Befehl in die src eingetragen, dann kommen jedoch Fehler! Oder ist das mit src ganz und gar falsch? Ich kann wie gesagt nicht so gut Java. Weißt Du vielleicht nochwas, das wär genial, ich weiß im Moment echt nicht mehr weiter!

    1. Erstmal vielen Dank für den Lösungsvorschlag!

      Die Rechnung folgt :-) [bitte auf keinen Fall ernst nehmen!]

      Aber ich hab's einfach irgendwie doch nicht hingekriegt, weil ich mich mit java nicht so auskenne. Also ich hab das jetzt mit Hilfe eines Tags probiert, weil es für alle Browser funktionieren soll:

      Auch die Tags funktionieren nicht bei allen, z. B. bei meinem Hassbrowser NS 4.x nicht (habe eine ziemliche Aversion gegen diesen Schrottbrowser)

      <script language=javascript>
      function textreload() {
      document.all.text.src = 'http://url-zum-script/cgi-bin/news.cgi?'; }
      window.setTimeout("textreload()",2000);
      //-->
      </script>
      <p id="text"><!--#exec cgi="/cgi-bin/news.cgi" --></p>

      Was ist daran falsch? Ich hab schon den #exec Befehl in die src eingetragen, dann kommen jedoch Fehler! Oder ist das mit src ganz und gar falsch? Ich kann wie gesagt nicht so gut Java. Weißt Du vielleicht nochwas, das wär genial, ich weiß im Moment echt nicht mehr weiter!

      Es wäre wirklich toll, wenn man die Tags mit einer externen Datei füllen könnte (aber daran haben die Browserhersteller wohl nicht gedacht). Leider ist dies nur mit <IFrames>/<Layers> möglich.
      Damit kriegst du dein Script auf allen Browsern zum laufen (bis auf NS 6.x, aber bei dem muss es auch eine Lösung geben [er unterstützt, so glaub ich weder layer noch iframes???] )

      Wenn du bei der Umsetzung Probleme hast, werde ich dir Helfen. Bin noch bis 22.30 im Büro. PS: wäre vielleicht besser das über E-Mails zu machen: cto@entryon.ch

      Gruss

      Philipp

      PS: document.all geht nur auf IE 5.x!

      1. PS: document.all geht nur auf IE 5.x!

        Nana, jetzt mal nicht übertreiben... Der IE 4 kennt das auch, ab Version 5 kann man aber auf diese proprietäre Erweiterung verzichten und lieber den Standard getElementById o.ä. nehmen.

        - Sven Rautenberg

        1. PS: document.all geht nur auf IE 5.x!
          Nana, jetzt mal nicht übertreiben... Der IE 4 kennt das auch, ab Version 5 kann man aber auf diese proprietäre Erweiterung verzichten und lieber den Standard getElementById o.ä. nehmen.

          Ach ja, der 4.x unterstützt das ja auch, hab ich komplett vergessen. OK, dann benutzen wir mal besser getElementById, obwohl das document.all hat mir sehr gefallen.

          Viele Grüsse

          Philipp