While-Schleife - Browser zeigt nichts an

Sweetlover

Mitglied
Hallo Leute,
ich bin gerade einen Chat am Coden. Dazu habe ich eine Shared-Memory Klasse vorliegen, die alle Vorgänge insoweit regelt. Nun bin ich an der Ausgabefunktion dran.
Mein Problem ist jetzt, dass sobald ich die Kommentarzeichen vor while {} weglasse, mir der Browser nichts anzeigt obwohl ich das ganze flushe. Der Browser lädt zwar, und lädt, und lädt... zeigt aber nur weiß... Ich will eine Endlosschleife laufen lassen, die halt immer die Nachrichten abfragt und in Echtzeit im Chatfenster ausgibt. Mit den Kommentaren funktioniert das Ganze ganz gut, aber halt nur mit manuellem Reload *g*. Was habe ich nun falsch gemacht? Freue mich über jede Hilfe.


PHP:
function output()
{
$messages = $this->get_message();
#while(true)
#{
    if( count( $messages ) > 0 )
    {
        for( $i = 0; $i < count( $messages ); $i++ )
        {
            echo $messages[$i];
        }
        flush();
        usleep( 500000 );
    }
#}
}
 
ich kann dir nur den Tipp geben, das ganze mit Java zu machen.

da hab ich schon viele gesehen die das so gemacht haben.

oder vieleicht geht das hababer keine ahnung wie

wenn du aktuallisierung der Seite mit 2 sekunden machst oder so?

ka geht bestimmt auch
 
Java oder Java Skript ist eine Möglichkeit aber PHP auf keinen Fall ...PHP müsste die endlosschleife erst ausgeführt haben bevor die daten zum User geschickt werden --> Unmöglich ^^
 
the-conqueror hat gesagt.:
Java oder Java Skript ist eine Möglichkeit aber PHP auf keinen Fall ...PHP müsste die endlosschleife erst ausgeführt haben bevor die daten zum User geschickt werden --> Unmöglich ^^
[PHPF]flush[/PHPF] ?!
Die Schleife selbst ist wohl nicht das Problem, eher die begrenzten Laufzeiten eines PHP Scriptes von Serverseiten her.
 
Ich habe einen eigenen root-Server und safe_mode ist bei mir nicht :)
Das muss doch irgendwie möglich sein, denn das Skript soll ja eben NICHT ganz ausgeführt werden sondern bei der Schleife "hängen" bleiben und dann alle neueingaben einfach raus flush-en ins Chatfenster. Es gibt ja Chats in PHP, die auch endlos weiterstreamen und die ohne Java auskommen.
 
Das, was du da ausgeben willst...steht das zufällig innerhalb einer Tabelle?

Wenn ja..verzichte auf die Tabelle.... je nach verwendetem Browser haben diese die Angewohnheit, Tabellen erst zu rendern, wenn sie komplett sind... was in deinem Fall nie der Fall wäre.
 
oO shared memory und php klingt cool :). Kannste mal zeigen die Klasse?

Ansonsten php-chat -> bööööse (php is eigentlich auf ne laufzeit von paar seks ausgelegt und nich für sowas gedacht)
Aber du must dich da eh eher mit Js beschöftigen weil du sonst ein Probelm mit den browsern bekommst. Die fangen ja nich sofort zu zeichnen an.
 
Sweetlover hat gesagt.:
Nein, wie schon gesagt basiert der Chat auf Shared Memory und soll reinen Text ausgeben - mehr nicht.
Das mag ja gut und schön sein.. wasimmer du damit auch meinen magst... aber du wirst doch wohl kaum eine gänzlich unformatierte Textdatei zur Ausgabe bringen.... nur das wäre "reiner Text":confused:
 
Zurück