Meine Aufgabenstellung:
Eine .html-Seite (möglicherweise m. Frames) darstellen.
Diese .html-Seite (oder 1 innerhalb des Framesets) soll einen anderen Inhalt darstellen, erhalten, sobald ein "Moderator/Administrator" das so will. Also auf den Knopf drückt.
Mein Ansatz:
1.) mit PHP, da ich kein Java kann und Perl mir ungeeignet erscheint.
2.) eine configdatei in der der Name der neu anzuzeigenden Datei o.ä.
steht, diese wird dann auf "modified" oder veränderten Inhalt
überprüft, und sollte das der Fall (modified/changed) wird der
neue Inhalt dargestellt.
3.) dasselbe wie bei 2.) nur das die Daten nicht aus nem File sondern
von einem geöffneten Port auf einem Server abgefragt werden.
ähnlich Port 13 (MOTD ???)
4.) entweder wird eines der Frames mit dem neuen Inhalt befüllt.
(per document.locationdocument.writehttp-headerwasauchimmer)
Oder: alles besteht aus einer .html Seite, und geparsed, oder
per Object/Class - Aufruf, oder so - habe davon noch nicht genug
ahnung/erfahrung - ein object für die Ausgabe gibt es bereits,
dieses Objekt enthält den code der .html-seite und wird mit dem
Bildlink ("/pix/bild.jpg") aufgerufen ($pp = new PP("/pix/bild1.jpg"); $pp->Display(); // funktioniert erstmal)
5.) Socket-Connections - aber damit hab ich auch noch zu wenig
Erfahrung.
Mein Problem:
1.) der Überwachungsprozess, der entscheided, ob ein neues
Bild/Inhalt dargestellt werden soll, soll im Hintergrund laufen.
also ähnlich wie bei JavaScript window.setTimeout, oder
setInterval usw. , nur das ich das irgendwie nicht so schnalle
Meine erste Lösung war recht simpel:
$altedatei="";
function Loop() {
$zeit = time(); //aktuelle zeit in sek.
$sollzeit = $zeit + 5; //plus 5 sekunden = sollzeit
while( $sollzeit > $zeit ) {
$datei = join("", file("config.txt","r") );
$datei = chop($datei);
if($datei != $altedatei) {
$altedatei=$datei;
$pp = new Presentation("html-template.html",$datei);
$pp->Display();
$zeit = time(); //aktuelle zeit in sek.
}
flush();
sleep(1); // warte 1 sekunde
}
flush();
Loop();
}
Leider bringt mich das nicht weiter, da der Loop nicht im Hintergrund durchgeführt, sondern der Browser dabei die ganze Zeit hängt. Wenn man dabei mal davon absieht, das es sich hierbei um einen Endlosloop handelt. Ich würde lieber mit window.setInterval() oder window.settimeout() arbeiten, habe aber vergleichbares in PHP4 noch nicht finden können. Leider half flush() auch nichts, es wird dennoch nichts ausgegeben.
Wer kann helfen ?!
mfg
cee jay