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