björn sippel: dynamisches Aktualisieren von Teilbereichen einer html-seite

Hallo zusammen,

habe folgendes Anliegen:

dynamisches Aktualisieren von Teilbereichen einer Html-Seite
OHNE einen kompletten Reload der Seite.

Ziel ist eine zappelfreie Aktualisierung/ Einfügung
von externen Daten.

Ablauf:
Nach dem Laden einer Html-Seite wird über einen Button
ein Script (?) gestartet, in welchem ein Ping abgesetzt
und ausgewertet wird. Alternativ kann hier auch jeder
andere beliebige "Datensammler" aufgerufen werden.

In einer zu Begin leeren Tabelle mit 2 Spalten sollen
schrittweise die Rückgabewerte des Pings in die
einzelnen Tabellenzeilen eingefügt werden.
Dabei soll über DOM bestehende Elementet (Icons)
ein- oder ausgeblendet werden.

Im Endergebnis soll man dem Ping ohne gezappel zuschauen können,
wie die gewünschten Daten nach und nach auf der HTML-Seite
sichtbar werden.

möglicher Ansatz:
Iconverhalten steuern über Events, allerdings muss ich hier
scriptseitig (Webserver) einen Event auslösen -also kein Event bzgl. Maus oder Sonstiges.

Einfügen der Daten:

  • mit frames arbeiten ? Wäre allerdings extrem aufwendig ,
    da für jede Datenzeile ein eigener Frame erzeugt wird
  • blinde iframes füllen und auf sichtbar stellen ?
  • versuche mit ssi, welche den STDOUT in die HTML-Seite
    schreiben, haben nicht funktioniert.
  • Bereiche mit div's erzeugen / füllen und einblenden ??
  1. Hallo,

    dynamisches Aktualisieren von Teilbereichen einer Html-Seite
    OHNE einen kompletten Reload der Seite.

    das geht IMHO nur mit iframes.

    Ziel ist eine zappelfreie Aktualisierung/ Einfügung
    von externen Daten.

    Zappelfrei bekommst du es mindestens daduch, daß du die Elemnte erst unsichtbar bachst, dann aktualisierst und dann wieder einblendest.

    Nach dem Laden einer Html-Seite wird über einen Button
    ein Script (?) gestartet, in welchem ein Ping abgesetzt
    und ausgewertet wird. Alternativ kann hier auch jeder
    andere beliebige "Datensammler" aufgerufen werden.

    Ein Ping wäre ein clientseitiges Programm, welches du aus JavaScript heraus aus guten Gründen nicht aufrufen kannst. Wenn der Ping jedoch auf dem Server läuft, dann kannst du dessen Ergebnisse natürlich mit Perl oder PHP in deine Seite einbauen.

    In einer zu Begin leeren Tabelle mit 2 Spalten sollen
    schrittweise die Rückgabewerte des Pings in die
    einzelnen Tabellenzeilen eingefügt werden.
    Dabei soll über DOM bestehende Elementet (Icons)
    ein- oder ausgeblendet werden.

    Im Endergebnis soll man dem Ping ohne gezappel zuschauen können,
    wie die gewünschten Daten nach und nach auf der HTML-Seite
    sichtbar werden.

    Du könntest einen unsichtbaren iframe als Kommunikationskanal mit dem Server benutzen. Mittels Timergesteuertem JavaScript und einer entsprechenden Parameterübergabe beinflusst du die Rückgabewerte vom Server. Über DOM kannst du dann beliebige Elemente in deiner Seite manipulieren.

    cu,
    ziegenmelker

    1. Hallo,

      kurz nochmals Darstellung der Umgebung:
      auf dem REchner befindet sich lokal ein Webserver (WAMPP),
      so dass alle Techniken verfügbar sind.

      OHNE einen kompletten Reload der Seite.
      das geht IMHO nur mit iframes.

      -->> was ist mit serverside includes (?)

      Zappelfrei bekommst du es mindestens daduch, daß du die Elemente erst unsichtbar machst, dann aktualisierst und dann wieder einblendest.

      -->> Wie kann ich die externen Daten aktualisieren ?
      Die Elemente sind ja nicht von Anfang an existent,
      sondern werden zur Laufzeit erzeugt.

      Bei den Beispielen,welche im Internet kursieren,
      wird immer von einem manuellen Eingriff augegangen
      (Mausklick, Seitenaufruf, ...)

      Wenn der Ping jedoch auf dem Server läuft, dann kannst du dessen Ergebnisse natürlich mit Perl oder PHP in deine Seite einbauen.
      -->> Ein PerlScript ist bereits vorhanden.
      Aber wie soll die Aktualisierung/Einbindung erfolgen ?
      -->>Ist ein kurzes Beispiel möglich?

      Gefunden habe ich zumindest Beispiele in der Form,
      das scriptgesteuert eine Url mit den erzeugten Daten
      an den lokalen Webserver abgeschickt wird. Die Daten werden als Formulardaten interpretiert und über die CGI-Schnittstelle
      ausgewertet.

      Du könntest einen unsichtbaren iframe als

      -->>Kommunikationskanal mit dem Server benutzen.

      -->>Ist ein kurzes Beispiel/ Skizzierung möglich ?
      Mittels Timergesteuertem JavaScript und einer entsprechenden Parameterübergabe beinflusst du die Rückgabewerte vom Server.

      Über DOM kannst du dann beliebige Elemente in deiner Seite manipulieren.

      -->>vielen Dank für diese konstruktive Information,

      Björn Sippel

      1. Hallo,

        kurz nochmals Darstellung der Umgebung:
        auf dem REchner befindet sich lokal ein Webserver (WAMPP),
        so dass alle Techniken verfügbar sind.

        ob der WebServer auf deinem Rechner oder auf einem anderen ist, ist unerheblich. Der Server kann von sich aus keine neuen Daten an den Client(Browser) senden. Der Client muß sie sich holen (Stichwort: Verbindungsloses Protokoll).

        OHNE einen kompletten Reload der Seite.
        das geht IMHO nur mit iframes.

        -->> was ist mit serverside includes (?)

        Allgemeine Bezeichnung für SSI. Bedeutet letztendlich nur daß serverseitig eine Programmiersprache eingesetzt wird um dynamische Seiten zu erstellen.

        Zappelfrei bekommst du es mindestens daduch, daß du die Elemente erst unsichtbar machst, dann aktualisierst und dann wieder einblendest.
        -->> Wie kann ich die externen Daten aktualisieren ?
        Die Elemente sind ja nicht von Anfang an existent,
        sondern werden zur Laufzeit erzeugt.

        Angenommen dein Perl-Script schreibt seine Daten in eine Datei oder DB, dann kannst du z.B. mit PHP diesen Inhalt auslesen. Der PHP-Code, der das macht, wird über den iframe aufgerufen und schreibt seinen Output als Javascript-Variablen in die HTML-Seite. Z.B.

        echo '<script type="text/javascript">';
        echo 'var data_1 = 12';
        ...
        echo '</script>'

        Bei den Beispielen,welche im Internet kursieren,
        wird immer von einem manuellen Eingriff augegangen
        (Mausklick, Seitenaufruf, ...)

        Beschäftige dich mal mit der JavaScript-Funktion setTimeout

        Wenn der Ping jedoch auf dem Server läuft, dann kannst du dessen Ergebnisse natürlich mit Perl oder PHP in deine Seite einbauen.
        -->> Ein PerlScript ist bereits vorhanden.
        Aber wie soll die Aktualisierung/Einbindung erfolgen ?
        -->>Ist ein kurzes Beispiel möglich?

        Du könntest einen unsichtbaren iframe als
        -->>Kommunikationskanal mit dem Server benutzen.

        -->>Ist ein kurzes Beispiel/ Skizzierung möglich ?
        Mittels Timergesteuertem JavaScript und einer entsprechenden Parameterübergabe beinflusst du die Rückgabewerte vom Server.

        Beispiel (ich unterstelle, daß das iframe das Attribut name="myIframe" hat:

        window.setTimeout("getData()",600000);

        function getData() {
            document.getElementsByName('myIframe').location.href="datensammler.php?datatype=3&......"
            //Der function kannst du auch Werte übergeben, die du in den URI einbauen kannst.
            window.setTimeout("getData()",600000); // Endlosschleife
        }

        function machWasMitDenNeuenDaten(auch hier könnte der Server neue Daten übergeben) {
            // Diese Funktion wird vom iframe aufgerufen, wenn dieser vollständig geladen ist, z.B. im
            // body-Element durch onload="parent.machWasMitDenNeuenDaten()"
            // An dieser Stelle kannst du jetzt auf die neuen Daten zugreifen und damit machen was du
            // willst, auch z.B. neue table-rows erzeugen, oder globale JavaScript-Variablen setzen/verändern,
            // welche wiederum in der Funktion getData() ausgelesen werden.
            // Zugriff: document.getElementsByName('myIframe').data_1
            // Du kannst also Serverseitig voll steuern, was diese Funktion macht.
            var obj = document.getElementsByName('myIframe');
            X1 = obj.data_1;
            alert(X1);
            document.getElementById('myTableCell_row_4_col_3').innerHTML = X1;
        }

        -->>vielen Dank für diese konstruktive Information,

        gern geschehen.

        cu,
        ziegenmelker

        1. Hallo,

          Angenommen dein Perl-Script schreibt seine Daten in eine Datei -->>wird direkt in den IFRAME geschrieben
          echo '<script type="text/javascript">';
          echo 'var data_1 = 12';
          ...
          echo '</script>'

          Beschäftige dich mal mit der JavaScript-Funktion setTimeout

          -->>habe ich bereits

          Du könntest einen unsichtbaren iframe als
          -->>Kommunikationskanal mit dem Server benutzen.

          -->>iframe startet das pingscript und erhält die Daten zurück

          Mittels Timergesteuertem JavaScript und einer entsprechenden Parameterübergabe beinflusst du die Rückgabewerte vom Server.

          -->> ich codiere bis jetzt kein PHP.
          -->>Ich habe mir dein Beispiel unten angeschaut, habe jedoch
          nicht ganz folgen können, welchen Einfluss die Parameter
          besitzen. Mir scheint das eine PHP-Variante zu sein (?)

          Beispiel (ich unterstelle, daß das iframe das Attribut name="myIframe" hat:

          -->>wird die Funktion getdata() im iframe geschrieben ?

          window.setTimeout("getData()",600000);

          function getData() {

          document.getElementsByName('myIframe').location.href="datensammler.php?datatype=3&......"

          -->>wird hier "ferngesteuert ein iframe erzeugt und direkt mit einem
          script (datensammmler.php) gestartet ?
          Wie sieht das mit Perl aus? Speziell die Parameter sind mir nicht
          geläufig.

          //Der function kannst du auch Werte übergeben, die du in den URI einbauen kannst.

          function machWasMitDenNeuenDaten(auch hier könnte der Server neue Daten übergeben) {
              // Zugriff: document.getElementsByName('myIframe').data_1
              // Du kannst also Serverseitig voll steuern, was diese Funktion macht.

          -->>muss man hier zwingend die Werte als Javascripvariablen
          erzeugen, um darauf zugreifen zu können ?
          Oder kann man auch über den DOM-Baum zugreifen ?

          var obj = document.getElementsByName('myIframe');
              X1 = obj.data_1;
              alert(X1);
              document.getElementById('myTableCell_row_4_col_3').innerHTML = X1;
          }

          ich habe ein bischen mit deinem Konstrukt herumprobiert, bin
          jedoch im Aufruf stekcen geblieben.
          Für einen Test bin ich von der Top-Html Seite ausgegangen und
          habe versucht, auf die IFrame-Daten zuzugreifen, was jedoch
          auch nach 4 Stunden herumprobieren nicht gelang.
          Der Übergang in die IFRame-Datei scheint "wie vernagelt".
          Referenzieren mittels window.frame.framename brachte nichts,
          auch eine Reihe weiterer Möglichkeiten, die sich im Netz finden.
          Lediglich das Herunterhangeln über die Nodes habe ich
          nicht versucht.

          Auch der Versuch, sich am DOM-Baum entlang zuhangeln
          über die Javascript-Konsole brachte nicht viel.
          -->>top.frame.length ->ergibt 1
          -->> Funkt das noch am ehesten aus dem IFrame heraus ?

          Die dazugehörigen 2 Dateien kannst Du in meinem letzten
          Post zu Cybaer finden. Ich wollte das hier jetzt nicht
          doppelt hineinsetzen.

          Gruss,
          Björn Sippel

          1. Hallo,

            Du könntest einen unsichtbaren iframe als
            -->>Kommunikationskanal mit dem Server benutzen.
            -->>iframe startet das pingscript und erhält die Daten zurück

            gut. ;-)

            Mittels Timergesteuertem JavaScript und einer entsprechenden Parameterübergabe beinflusst du die Rückgabewerte vom Server.
            -->> ich codiere bis jetzt kein PHP.

            Dasselbe kannst du auch mit Perl erreichen.

            -->>Ich habe mir dein Beispiel unten angeschaut, habe jedoch
            nicht ganz folgen können, welchen Einfluss die Parameter

            Die Parameter sind nur eine 'can be' Möglichkeit, wenn du sie nicht brauchst, lass' sie weg.

            besitzen. Mir scheint das eine PHP-Variante zu sein (?)

            Nein.

            Beispiel (ich unterstelle, daß das iframe das Attribut name="myIframe" hat:

            -->>wird die Funktion getdata() im iframe geschrieben ?

            window.setTimeout("getData()",600000);
               function getData() {
                document.getElementsByName('myIframe').location.href="datensammler.php?datatype=3&......"
            -->>wird hier "ferngesteuert ein iframe erzeugt und direkt mit einem
            script (datensammmler.php) gestartet ?

            Diese Parameterübergabe ist reines HTML. Die Parameter werden in der URI übergeben, nennt sich afaik GET-Methode. Auf dem Server kannst du sie sowohl mit PHP als auch mit Perl abfragen. Wenn du sie nicht brauchst, dann lasse sie wie gesagt halt weg.

            Wie sieht das mit Perl aus? Speziell die Parameter sind mir nicht
            geläufig.

            Wenn ich heute Abend noch Zeit habe, mache ich dir mal ein Beispiel.

            //Der function kannst du auch Werte übergeben, die du in den URI einbauen kannst.

            function machWasMitDenNeuenDaten(auch hier könnte der Server neue Daten übergeben) {
                // Zugriff: document.getElementsByName('myIframe').data_1
                // Du kannst also Serverseitig voll steuern, was diese Funktion macht.

            Hier ist mir ein kapitaler Fehler unterlaufen. Auf die JavaScript-Variablen kannst du nur über das Window-Objekt zugreifen, also so:
            window.frames(myIframe)[0].data_1

            -->>muss man hier zwingend die Werte als Javascripvariablen
            erzeugen, um darauf zugreifen zu können ?

            Nein, aber das ist IMHO doch der einfachste Weg, wie an meinem kleinen PHP Beispiel gezeigt. In Perl ist das genauso einfach und der Zugriff im Client auf die Daten im iFrame ist auch viel einfacher, da die Funktionen, die auf das DOM zugreifen IMHO langsamer sind als ein direkter Zugriff über das Window-Objekt.

            Oder kann man auch über den DOM-Baum zugreifen ?

            var obj = document.getElementsByName('myIframe');
                X1 = obj.data_1;
                alert(X1);
                document.getElementById('myTableCell_row_4_col_3').innerHTML = X1;
            }

            Richtig:
            var obj = window.frames('myIframe')[0];
            X1 = obj.data_1;
            alert(X1);

            document.getElementById('myTableCell_row_4_col_3').innerHTML = X1; //Dies soll nur verdeutlichen, wie du eine Tabellenzellen-Matrix bevölkern könntest die z.B. so aussehen könnte:
            <table>
            <tr>
                 -----------------------------------------------------------------------------------
            <tr> | <td id="myTableCell_row_1_col_1"></td> | <td id="myTableCell_row_1_col_2"></td> | ... </tr>
                 -----------------------------------------------------------------------------------
            <tr> | <td id="myTableCell_row_2_col_1"></td> | <td id="myTableCell_row_2_col_2"></td> | ... </tr>
                 -----------------------------------------------------------------------------------
            ...
                 -----------------------------------------------------------------------------------
            <tr> | <td id="myTableCell_row_n_col_1"></td> | <td id="myTableCell_row_n_col_2"></td> | ... </tr>
                 -----------------------------------------------------------------------------------

            habe versucht, auf die IFrame-Daten zuzugreifen, was jedoch
            auch nach 4 Stunden herumprobieren nicht gelang.
            Der Übergang in die IFRame-Datei scheint "wie vernagelt".

            Wie gesagt, war mein Fehler. Aber an der Stelle habe ich früher auch schon viel Zeit geopfert :(

            Die dazugehörigen 2 Dateien kannst Du in meinem letzten
            Post zu Cybaer finden. Ich wollte das hier jetzt nicht
            doppelt hineinsetzen.

            Jupp, werde ich mir noch mal genau ansehen, und wie gesagt, wenn es die Zeit erlaubt, mach ich mal ein kleines Beispiel in Perl.

            cu,
            ziegenmelker

  2. Hi,

    • mit frames arbeiten ? Wäre allerdings extrem aufwendig ,
      da für jede Datenzeile ein eigener Frame erzeugt wird
    • blinde iframes füllen und auf sichtbar stellen ?

    Der "Datensammler" läuft in einem unsichtbaren IFrame und gibt seine Daten als HTML aus. Vom sichtbaren Parent kannst Du dann dieses HTML mit innerHTML abgreifen, auswerten und entsprechend mittels DHTML anzeigen.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Hallo Cybaer,

      moechte meine Frage  sachlich halten, was mir in diesem
      -jetzt teilgelöschten- Thread jedoch nicht leicht fällt.

      Also, back to the roots, nämlich meiner Frage :-)

      Ja. Mein Posting bezog sich auf Cheatahs dümmliche Art, nicht auf deine Frage.

      -> Danke

      Das hatte ich zuerst gemacht, wie Du vielleicht bei einem kurzen Blick auf den Thread feststellen könntest.

      -> Hier kann ich nur einwenden, dass mir dein Hinweis nicht hilft.
      Einfach deshalb, da mir nicht geläufig ist, wie ein Datensammler
      innerhalb eines IFRAMES selbsständig aktiv sein soll.
      Mir sind einzig serverside includes bekannt als methode,
      innerhalb einer html-Datei coding anzustarten, OHNE das manuell
      eine AKtion erfolgt.

      Falls es mit Javascript gemacht wird, müssten alle benötigten
      Daten/Code-Teile nach dem ersten Laden verfügbar sein, was diese ja
      definitiv nicht sein können, sondern zur Laufzeit
      nachgeladen werden.

      Nächste Möglichkeit wäre über (?) eine Serverseitige
      Pushtechnik (?), welche die Seitenteile aktualisiert.

      Ansonsten frage ich mal meine 3 jährige Tochter, da Sie
      intelligenzmässig definitiv mehr zu bieten hat als die bisherigen Postings.

      -->> damit reagiere ich auf die postings generell, muss mich allerdings bei Dir zurücknehmen, da von Dir eine themenbezogene
      Antwort kam.

      Ja, das tu mal besser! Mein Laune, dir weitere Hilfestellung zuteil werden zu lassen, ist nämlich gerade dramatisch geschwunden.

      Und ehrlich gesagt, ich glaube nicht, daß deine 3-jährige Tochter das Problem wie von mir beschrieben lösen kann. Ich vermute eher, daß Du es, trotz meiner Hinweise wie es zu lösen ist, auch nicht hinbekommst.

      -->>natürlich kann meine Tochter keine Programmierung.

      Was meine Tochter allerdings immer macht, wenn ich Sie etwas frage,
      ist folgendes:
      Wenn meine Tochter denn Eindruck hat, dass ich Sie nicht verstanden
      habe, dann zeigt Sie ganz genau, was Sie mir sagen wollte.

      -->> Ich erwarte jetzt kein "Händchen" halten. Die Tipps
      muessen aber nachvollziehbar sein.
      -->> Einfaches Beispiel: beruflich bin ich senior consultant
      im technischen SAP-Bereich.
      typische Aufgabenstellung lautet z.B., für ca. 100
      Entwickler und ca. 8000 Enduser eine Systemlandschaft
      mit bis zu 100 Systemen, wozu auch IBM-HOSTIES gehören,
      mit einander zu verbinden für eine sogenannte
      Softwareverteilung.
      Sprich, Du änderst z.B.
      nur EINE Zeile an deinem aktuellen Program, und möchtest
      genau diese Änderung in genau 43 Systeme, die genau bekannt
      sind, während der Mittagspause auf Knopfdruck Einspielen.
      -->> Das geht ohne Probleme.
      Würde ich nach deinem Muster antworten, würde ich sagen:

      schaue Dir das TMS an, konfiguriere "kurz" die Transpsortwege
      und stimme dich mit den Enticklern bzgl. der Entwicklungs-
      klassen und Modifikationen am Standard ab.

      -->>Fachlich vollkommen richtig.
      -->>In der Praxis machst Du jedoch erstmal 4 Wochen Schulung
      bei SAP, damit Du (jetzt nicht persönlich) zumindest  ansatzweise Verständniss entwicklst,
      und sammelst erst einmal 2 Jahre Erfahrung, bis man dann soweit ist.
      -->>Die 2 Jahre sind deshalb notwendig, da diese Materie
      ziemlich komplex werden kann inn einem Umfeld mit bis zu 100
      Entwicklern und ca. 10 verschiendenen Produktschienen
      innerhalb einer verknüpften Datenbankumgebung
      -> SAP R/3 MySAP.COM
      -->>Ich mache hier jetzt keine Werbung für SAP !!!!

      -->>Eine berechtigte Antwort wäre sinngemäss:
      Das mag ja alles richtig sein, aber das ist viel zu viel
      in kurzer Zeit, und hilft mir deshalb trotzdem nicht weiter.

      -->> Besser wäre es, die notwendigen Punkte a) zu nennen, und
      b) anstelle von Stichworten grobes Beispielcoding (Auszüge)
      oder bestehenden Seiten anzugeben.

      -->> Gut, nähere ich mich mal dem Sachproblem
      Bei Selfhtml gibt es auch etwas über Innerhtml,
      allerdings findet man auch bereits wieder ein schönes Beispiel
      für Hilfsbereitschaft.
      -->>http://forum.de.selfhtml.org/archiv/2002/6/t14690/

      Weiter wird erwähnt, dass innerhtml eine Microsoftversion
      darstellt.

      Ich habe mich nochmals kurz umgeschaut über GOOGLE.

      Also, Beispiele wie:
      ------Auszug-------
      function PopulateIframe()
      {
      var IframedDocumentBody = frames["thisframe"].document.body;
      var FirstParg = document.createElement("p");
      FirstParg.appendChild(document.createTextNode("goodbye"));
      IframedDocumentBody.appendChild(FirstParg);
      }
      </script >
      -------------------------------------
      -->>hier wird Text eingefügt -goodbye-
      ist zwar wunderschön. Allerdings sind die Daten, sprich der Text:
      "goodbye", bereits vorhanden.
      Weiterer Punkt ist die nötige Auslösung des Scriptes, und hier hatte
      ich in meiner Frage einen Schwerpunkt gelegt,

      wie a) von aussen Scripte angetriggert werden, und b)
      eventuell events ausgelöst werden können.

      Zu guter Letzt:
      ich will niemanden auf die Hufe treten, aber ich bitte einfach um
      nachvollziehbare Hilfestellung.
      Also, falls ich innerhtml verwende, die DOM-Struktur im Firefox
      über den eingebauten DOM-Inspector analysiere und coding
      erstelle, ist die Frage nach der Datenherkunft, besser gesagt die
      Auslösung der Datenaktualisierung ungeklärt.

      Die hiesigen Beispiele gehen davon aus, dass das Dokument
      entweder geladen wird , oder Mausklicks durchgeführt werden.

      Ich will jedoch einfach nur vor dem Bildschirm sitzen
      und zuschauen, dass in der geladenen HTML-Seite
      die Tabelle mit Inhalt gefüllt wird.

      mfg,
      Björn Sippel

      1. Hi,

        Ja. Mein Posting bezog sich auf Cheatahs dümmliche Art, nicht auf deine Frage.
        -> Danke

        Generell bezieht sich ein Forums-Posting immer auf das exakt vorhergehende. Deswegen ja auch diese Baumstruktur. Das ist der größte Unterschied zw. Forum und den oft üblichen Boards.

        -> Hier kann ich nur einwenden, dass mir dein Hinweis nicht hilft.

        Dem kann abgeholfen werden. ;-)

        Einfach deshalb, da mir nicht geläufig ist, wie ein Datensammler
        innerhalb eines IFRAMES selbsständig aktiv sein soll.

        Du startest ein Programm, das Daten ausgibt? Nun, irgendwann muß es doch mit irgendwas gestartet werden.

        Mir sind einzig serverside includes bekannt als methode,
        innerhalb einer html-Datei coding anzustarten, OHNE das manuell
        eine AKtion erfolgt.

        ?

        Falls es mit Javascript gemacht wird, müssten alle benötigten
        Daten/Code-Teile nach dem ersten Laden verfügbar sein, was diese ja
        definitiv nicht sein können, sondern zur Laufzeit
        nachgeladen werden.

        Deswegen die Aktion im (I)Frame.

        -->> damit reagiere ich auf die postings generell, muss mich allerdings bei Dir zurücknehmen, da von Dir eine themenbezogene Antwort kam.

        Nun gut. Du siehst, ich antworte. ;-)

        -->>In der Praxis machst Du jedoch erstmal 4 Wochen Schulung
        bei SAP, damit Du (jetzt nicht persönlich) zumindest  ansatzweise Verständniss entwicklst,
        und sammelst erst einmal 2 Jahre Erfahrung, bis man dann soweit ist.

        Da ich deinen Webdesign-Erfahrungsstand nicht kenne, ist halt nachfragen angesagt. ;-)

        Weiter wird erwähnt, dass innerhtml eine Microsoftversion
        darstellt.

        all.innerHTML ja. getElementById().innerHTML ist Allgemeingut geworden.

        ist zwar wunderschön. Allerdings sind die Daten, sprich der Text:
        "goodbye", bereits vorhanden.

        Sorge dafür, daß der benötigte Text geschaffen wirst - indem das Programm im Frame gestartet wird.

        Ich will jedoch einfach nur vor dem Bildschirm sitzen
        und zuschauen, dass in der geladenen HTML-Seite
        die Tabelle mit Inhalt gefüllt wird.

        Ich würde vorschlagen, Du stellst kurz vor, wie Du überhaupt an die gewünschten Daten kommen möchtest.

        Wenn Du Daten hast (schmucklos in einer separaten Webseite mit manueller Anforderung), dann helfe ich dir, die gewünschten Infos in Echtzeit und ohne Flackern in deinem eigentlichen Dokument darzustellen. ;-)

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hallo Cybaer,

          vielen Dank für Dein Angebot.

          Ich bastele heute Abend -> Nacht eine entsprechende Seite.

          Sorge dafür, daß der benötigte Text geschaffen wirst - indem das Programm im Frame gestartet wird.

          Ich würde vorschlagen, Du stellst kurz vor, wie Du überhaupt an die gewünschten Daten kommen möchtest.

          -->>ursprünglich über eine Framegeteilte Seite.
          Also, im linken Frame liegt ein kleines Menü, über welches
          dann manuell der Ping gestartet wird.
          Im unteren Beispiel erfolgt der Start des Scripts jetzt automatisch
          über den tag
          -->><!--#exec cgi="/cgi.....
          innerhalb eines Tabellenfeldes.
          -->>Start wäre hier jetzt der Aufruf der HTML-Datei, da beim Load automatisch das CGI ausgeführt wird.

          -->>Die reine Datenbeschaffung erfolgt über ein
          Mini-Perlscript, welches über backticks einen ping,
          hier auf www.arcor.de ausführt.
          Integriert ist hier noch die HTML-Ausgabe

          Ablauf:
          HTML-Seite incl. leerer Tabelle vollständig aufbauen mittels
          Perl-Script.
          Nach dem Seitenaufbau erfolgt der Ping und die Auswertung
          des Ergebnisarrays.
          Die Ergebnisse sollen dann in die einzelnen
          Tabellenfelder geschrieben werden.

          Start des Scripts möglich über:
          HTML-Datei:
          ..blabla...
          ..<td><!--#exec cgi="/cgi-bin/test/zping.pl" --></td>....

          -->>serverside include startet das perl-script an und gibt
          den output in das Tabellenfeld zurück

          ------------- zping.pl ------------------
          print "Content-type: text/html\n\n";
          print '<html>';
          print '<head>';
          print '<meta name="author" content="SIPPEL">';
          print '<link href="../styles.css" rel="stylesheet" type="text/css">';
          print '</head>';

          print (gekürzt) -> 2 spaltige Tabelle (?)
          -->> könnte hier dynamisch erzeugt werden (?)

          @array = ping  -n 1 www.arcor.de;
          -->>Verarbeitung (gekürzt)
          foreach  list(@array)

          Hier schaue ich mich noch um bzgl. einer print-Anweisung
          à la -> print "WERT  target=zelle-xy " (?)

          ----------------------------------------------------

          Wenn Du Daten hast

          -->> also eine komplette Datenauswertung in einer
          HTML-Datei ?

          (schmucklos in einer separaten Webseite mit manueller Anforderung), dann helfe ich dir, die gewünschten Infos in Echtzeit und ohne Flackern in deinem eigentlichen Dokument darzustellen. ;-)

          -->>ich baue diesen Abend ein Beispiel zusammen

          mfg,
          Björn Sippel

          1. Hi,

            ------------- zping.pl ------------------

            OK, nachvollziehbar. ;-)

            Wenn Du Daten hast
            -->> also eine komplette Datenauswertung in einer
            HTML-Datei ?

            Ja.

            -->>ich baue diesen Abend ein Beispiel zusammen

            Und dann die fertige HTML-Seite zur Betrachtung ins Netz stellen, bzw. hier posten.

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Hallo Cybaer,

              der Cache meines Browsers hatte mir einen kleinen
              Streich gespielt, deshalb das Posting jetzt an
              der aktuellen Stelle.

              hier kommt jetzt eine kleine "Testumgebung":
              Weiter unten sind zwei Dateien angehängt:
              1.) pingload.html
              2.) ziframe.html
              beinhaltet die Tabelle, welcher ich zuschauen möchte :)

              ->> beide Dateien sollten unter c:\temp liegen,
              andernfalls muss der Pfad in ziframe.html
              angepasst werden

              Aufgerufen wird ZIFRAME.HTML
              ------------------------------------------

              Der Start des Scriptes im Original erfolgt durch
              Aufruf im src-Tag des Iframes. Nach Beendigung des
              Scriptes liegen die Daten im IFrame vor.
              Hier kommt jetzt ersatzweise die pingload.html

              Falls Du zusätzlich einen Link, Button per JS oder ähnliches benötigst, bitte ich Dich, dieses selbst einzufügen.

              pingload.html
              --------------------
              In dieser Datei habe ich manuell die Datenstruktur nachgestellt,
              wie diese im Echtlauf erzeugt wird. Die einzige Frage hierbei
              ist eventuell, ob es für Dein Coding relevant ist, ob eine echte
              Datei vorliegt oder dynamisch erzeugter Code.

              Trotz allem Ärgernis mit dem einleitendem Kommentar von Cheatah
              habe ich versucht, seinen Rat(Schlag) zu beherzigen.
              Die IFRAME-Datei besteht nur aus div-Blöcken, welchen ich
              noch eine ID verpasst habe.
              Zur besseren optischen Trennung habe ich li's eingebaut.
              Falls die id's nicht benötigt werden, kannst Du diese
              auch rausschmeissen.

              Die id's
              ->ztime ->30#30#40#50
              und
              ->zttl ->120#120#250#250

              habe ich nicht separat getrennt, obwohl diese in die
              Datenfelder time[1..4] und ttl[1..4] getrennt werden.
              Falls es einfacher ist, können diese Datenblöcke mit
              separarten id's versehen werden.

              In der Hauptdatei ziframe.html liegt zwar eine Tabelle vor,
              habe jedoch in den td-Elementen für die Werte korrespondierende
              id's gelegt.
              Die ID's unterscheiden sich zur IFrame-Datei durch ein fehlendes
              "Z".

              Für eine bessere Darstellung der Zusammenhänge habe ich noch eine
              Spalte mit den ID's angefügt.
              In der pingload ist nur die Value-Spalte relevant für die
              Datenübertragung.
              Falls notwendig, kann z.B. von
              <li>  zziel  -- www.arcor.de
              alles bis auf www.arcor.de gelöscht werden

              -->>Hoffe, dass das hier halbwegs bersichtlich ist :-)

              mfg,
              Björn Sippel

              -----start----pingload.html--------------
              <html>
              <head>
              <body bgcolor=#C0C0B4>
              <div  style="width:100%;height:30px;">
              <pre><b>IFRAME ID--VALUE</b>
              </div>

              <div id="zziel" style="width:100%;height:30px;">
              <li>  zziel  -- www.arcor.de
              </div>

              <div id="zhost" style="width:100%;height:30px;">
              <li>  zhost  -- www.arcor.net
              </div>

              <div id="zip" style="width:100%;height:30px;">
              <li>  zip    --   151.189.21.100
              </div>

              <div id="ztime" style="width:100%;height:30px;">
              <li>  ztime  --   30#30#40#50
              </div>

              <div id="zttl" style="width:100%;height:30px;">
              <li>   ztti  --   120#120#250#250
              </div>

              <div id="zsent" style="width:100%;height:30px;">
              <li>  zsent  --   4
              </div>

              <div id="zrec" style="width:100%;height:30px;">
              <li>   zrec  --  1
              </div>

              <div id="zlost" style="width:100%;height:30px;">
              <li>  zlost  --   3
              </div>

              <div id="zmin" style="width:100%;height:30px;">
              <li>  zmin   --    30
              </div>

              <div id="zmax" style="width:100%;height:30px;">
              <li>   zmax  --  30
              </div>

              <div id="zav" style="width:100%;height:30px;">
              <li>   zav   --  7
              </div>
              </pre>
              </head>
              --------ende-------------------
              ---start---ziframe.html---------

              <table border=1 style="position:absolute;top:70px;left:70px">

              <tr>
              <td><b>Field-ID</b></td><th bgcolor=#B4C81E colspan=6>TARGET</th></tr>
              <td>ziel</td><td>Zielhost/ IP</td><td id="ziel" colspan=5>----</td></tr><tr>

              <td>.</td><th bgcolor=#B4C81E colspan=6>REPLY</th></tr>
              <tr>
              <td>host</td><td>Host</td><td id="host" colspan=5>----</td></tr><tr>
              <td>ip</td><td>IP</td><td id="ip" colspan=5>----</td></tr><tr>

              <td>.</td><th bgcolor=#B4C81E colspan=6>DATA</th></tr>

              <td>time[1..4]</td><td>Time</td><td id="time1">----</td><td id="time2">----</td><td id="time3">----</td><td id="time4">----</td></tr><tr>
              <td>ttl[1..4]</td><td>TTL</td><td id="ttl1" >----</td><td id="ttl2">----</td><td id="ttl3">----</td><td id="ttl4">----</td>
              </tr>
              <tr>
              <td>.</td><th bgcolor=#B4C81E colspan=6>STATISTIC</th></tr>
              <tr>
              <td>sent</td><td>Sent</td><td id="sent" colspan=5>----</td></tr><tr>
              <td>rec</td><td>Received</td><td id="rec" colspan=5>----</td></tr><tr>
              <td>lost</td><td>Lost</td><td id="lost" colspan=5>----</td></tr><tr>
              <td>min</td><td>Min. ms</td><td id="min" colspan=5>----</td></tr><tr>
              <td>max</td><td>Max. ms</td><td id="max" colspan=5>----</td></tr><tr>
              <td>av</td><td>Average. ms</td><td id="av" colspan=5>----</td></tr>
              </table>

              <div id="ziframe" style="position:absolute;top:70px;left:70px;width:75%;height:400px;scrolling:yes;">

              <!--
                <iframe src="/cgi-bin/test/zping.pl" name="zping" width="50%" height="70%" frameborder="1" align="right" hspace="0" vspace="0" marginwidth="0" marginheight="0" frameborder="1">
                   platzhalter für player
                </iframe>
              -->
              <iframe src="file:///C:/temp/pingload.html" name="zping" width="30%" height="100%"  align="right" hspace="10" vspace="20" marginwidth="20" marginheight="5" frameborder="0">
                   platzhalter für player
                </iframe>
              </div>
              --------------ende---------------------------------------

              1. Hi,

                -----start----pingload.html--------------

                Das ist grausamer "HTML"-Code. Du solltest ihn mal durch einen Validator jagen und die Fehler korrigieren.

                <div id="zziel" style="width:100%;height:30px;">
                <li>  zziel  -- www.arcor.de
                </div>

                Du möchtest z.B. "www.arcor.de" weiterverarbeiten?

                Sollte dann so aussehen (Optik ist uninteressant - i.d.R. sieht ohnehin niemand den Output ;-)):

                ----------------------------------------

                <title>PingZiel</title>

                Ziel: <span id="zziel">-</span></br>

                <iframe src="pingload.html" name="zping" width="0" height="0"  align="right">
                     platzhalter für player
                </iframe>

                ----------------------------------------

                <title>PingLoad</title>

                <script type="text/javascript">
                function output(tagname,parentID) {
                if(document.getElementsByTagName) {
                  var source, target, content;

                source=document.getElementsByTagName(tagname);
                  target=parent.document.getElementById(parentID);

                content=source[source.length-1].innerHTML;

                target.innerHTML=content;
                }
                }
                </script>

                <script type="text/javascript">alert("Kleine Pause");</script>

                <div>www.arcor.de</div>
                <script type="text/javascript">output("div","zziel");</script>

                <script type="text/javascript">alert("Kleine Pause");</script>

                <div>www.web.de</div>
                <script type="text/javascript">output("div","zziel");</script>

                ----------------------------------------

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        2. Hallo Cybaer,

          hier kommt jetzt eine kleine "Testumgebung":
          Weiter unten sind zwei Dateien angehängt:
          1.) pingload.html
          2.) ziframe.html
          beinhaltet die Tabelle, welcher ich zuschauen möchte :)

          ->> beide Dateien sollten unter c:\temp liegen,
          andernfalls muss der Pfad in ziframe.html
          angepasst werden
          ------------------------------------------

          Der Start des Scriptes im Original erfolgt durch
          Aufruf im src-Tag des Iframes. Nach Beendigung des
          Scriptes liegen die Daten im IFrame vor.
          Hier kommt jetzt ersatzweise die pingload.html

          Falls Du zusätzlich einen Link, Button per JS oder ähnliches benötigst, bitte ich Dich, dieses selbst einzufügen.

          pingload.html
          --------------------
          In dieser Datei habe ich manuell die Datenstruktur nachgestellt,
          wie diese im Echtlauf erzeugt wird. Die einzige Frage hierbei
          ist eventuell, ob es für Dein Coding relevant ist, ob eine echte
          Datei vorliegt oder dynamisch erzeugter Code.

          Trotz allem Ärgernis mit dem einleitendem Kommentar von Cheatah
          habe ich versucht, seinen Rat(Schlag) zu beherzigen.
          Die IFRAME-Datei besteht nur aus div-Blöcken, welchen ich
          noch eine ID verpasst habe.
          Zur besseren optischen Trennung habe ich li's eingebaut.
          Falls die id's nicht benötigt werden, kannst Du diese
          auch rausschmeissen.

          In der Hauptdatei ziframe.html liegt zwar eine Tabelle vor,
          habe jedoch in den td-Elementen für die Werte korrespondierende
          id's gelegt.
          Die ID's unterscheiden sich zur IFrame-Datei durch ein fehlendes
          "Z".

          Für eine bessere Darstellung der Zusammenhänge habe ich noch eine
          Spalte mit den ID's angefügt.
          In der pingload ist nur die Value-Spalte relevant für die
          Datenübertragung.
          Falls notwendig, kann z.B. von
          <li>  zziel  -- www.arcor.de
          alles bis auf www.arcor.de gelöscht werden

          -->>Hoffe, dass das hier halbwegs bersichtlich ist :-)

          mfg,
          Björn Sippel

          -----start----pingload.html--------------
          <html>
          <head>
          <body bgcolor=#C0C0B4>
          <div  style="width:100%;height:30px;">
          <pre><b>IFRAME ID--VALUE</b>
          </div>

          <div id="zziel" style="width:100%;height:30px;">
          <li>  zziel  -- www.arcor.de
          </div>

          <div id="zhost" style="width:100%;height:30px;">
          <li>  zhost  -- www.arcor.net
          </div>

          <div id="zip" style="width:100%;height:30px;">
          <li>  zip    --   151.189.21.100
          </div>

          <div id="ztime" style="width:100%;height:30px;">
          <li>  ztime  --   30#30#40#50
          </div>

          <div id="zttl" style="width:100%;height:30px;">
          <li>   ztti  --   120#120#250#250
          </div>

          <div id="zsent" style="width:100%;height:30px;">
          <li>  zsent  --   4
          </div>

          <div id="zrec" style="width:100%;height:30px;">
          <li>   zrec  --  1
          </div>

          <div id="zlost" style="width:100%;height:30px;">
          <li>  zlost  --   3
          </div>

          <div id="zmin" style="width:100%;height:30px;">
          <li>  zmin   --    30
          </div>

          <div id="zmax" style="width:100%;height:30px;">
          <li>   zmax  --  30
          </div>

          <div id="zav" style="width:100%;height:30px;">
          <li>   zav   --  7
          </div>
          </pre>
          </head>
          --------ende-------------------
          ---start---ziframe.html---------

          <table border=1 style="position:absolute;top:70px;left:70px">

          <tr>
          <td><b>Field-ID</b></td><th bgcolor=#B4C81E colspan=6>TARGET</th></tr>
          <td>ziel</td><td>Zielhost/ IP</td><td id="ziel" colspan=5>----</td></tr><tr>

          <td>.</td><th bgcolor=#B4C81E colspan=6>REPLY</th></tr>
          <tr>
          <td>host</td><td>Host</td><td id="host" colspan=5>----</td></tr><tr>
          <td>ip</td><td>IP</td><td id="ip" colspan=5>----</td></tr><tr>

          <td>.</td><th bgcolor=#B4C81E colspan=6>DATA</th></tr>

          <td>time[1..4]</td><td>Time</td><td id="time1">----</td><td id="time2">----</td><td id="time3">----</td><td id="time4">----</td></tr><tr>
          <td>ttl[1..4]</td><td>TTL</td><td id="ttl1" >----</td><td id="ttl2">----</td><td id="ttl3">----</td><td id="ttl4">----</td>
          </tr>
          <tr>
          <td>.</td><th bgcolor=#B4C81E colspan=6>STATISTIC</th></tr>
          <tr>
          <td>sent</td><td>Sent</td><td id="sent" colspan=5>----</td></tr><tr>
          <td>rec</td><td>Received</td><td id="rec" colspan=5>----</td></tr><tr>
          <td>lost</td><td>Lost</td><td id="lost" colspan=5>----</td></tr><tr>
          <td>min</td><td>Min. ms</td><td id="min" colspan=5>----</td></tr><tr>
          <td>max</td><td>Max. ms</td><td id="max" colspan=5>----</td></tr><tr>
          <td>av</td><td>Average. ms</td><td id="av" colspan=5>----</td></tr>
          </table>

          <div id="ziframe" style="position:absolute;top:70px;left:70px;width:75%;height:400px;scrolling:yes;">

          <!--
            <iframe src="/cgi-bin/test/zping.pl" name="zping" width="50%" height="70%" frameborder="1" align="right" hspace="0" vspace="0" marginwidth="0" marginheight="0" frameborder="1">
               platzhalter für player
            </iframe>
          -->
          <iframe src="file:///C:/temp/pingload.html" name="zping" width="30%" height="100%"  align="right" hspace="10" vspace="20" marginwidth="20" marginheight="5" frameborder="0">
               platzhalter für player
            </iframe>
          </div>
          --------------ende---------------------------------------