Michi: document.write() treibt Browser in Endlos-Lade-Schleife

Hi,

bin grad dabei, einen eigenen Chat zu entwickeln. Läuft so weit auch ganz gut mit AJAX, aber ich gelang nun an einen entscheidenen Punkt bei deisem Chat:

Wie realisiere ich das Chat-Fenster?

Bei einer textarea fehlen wohl bisschen die Gestaltungsmöglichkeiten.
Ich probier es von daher also momentan mit einem IFrame. Der Text lässt sich damit zwar schon mal wie gewünscht formatieren, allerdings kriege ich beim Schreiben ins Dokument einen Browser-Endlos-Lad-Hänger.

Der IFrame:

<iframe src="chattext.php" width="790" height="550" name="chattextbereich">Ihr Browser kommt nicht mit IFrames klar.</iframe>

Die Zeile, die diesen Hänger (Browser lädt und lädt) auslöst (an den AJAX-GET-Requests liegts nicht, wurde probiert), schaut so aus:

parent.chattextbereich.document.write ( werte );

In der Variable "werte" befindet sich der mit HTML aufbereitete Chattext, der ergänzt werden soll.

Woher kommt der Hänger bzw. wie teil ich dem HTTP-Server mit, dass da jetzt keine Eingaben mehr kommen, falls er, wonach es ausschaut, auf weitere wartet?

Gruß Michi

  1. Hi Michi,

    ich würde es empfehlen mit nodes dynamisch zu erzeugen (http://de.selfhtml.org/javascript/objekte/node.htm)
    ich habe es auch mal ausprobiert aber mein ajax chat war viel zu traffic lastig

    Ich hoffe dieser Denkanstos hilft dir weiter.

    Gruß,
    Rekire

    1. Hi Rekire,

      ich würde es empfehlen mit nodes dynamisch zu erzeugen (http://de.selfhtml.org/javascript/objekte/node.htm)
      ich habe es auch mal ausprobiert aber mein ajax chat war viel zu traffic lastig

      Ich hoffe dieser Denkanstos hilft dir weiter.

      Das mit den Nodes ist für die Ausgabe des Chattexts schon mal ganz hilfreich, denn wenn ich den so per "innerHTML = neuerText + innerHTML" einbau, dauert das schon recht lang bei ein paar hundert Zeilen und wenns geht, will ich keine extra History einbauen. ;)

      Bisschen einen Denkanstoß kann ich jetzt überhaupt gebrauchen, da ich jetzt an dieser von Dir genannten Problemstelle angekommen bin...

      Ich schreib ja bisher jede eingegebene Zeile gleich mal in die Datenbank, aber ich glaub, das kann ich mir abschminken. Funktioniert zwar, :)

      Was bleiben für Alternativen... Socket-Verbindung oder Shared Memory, wozu von JavaScript aus allerdings auch wieder HTTP-Anfragen starten müssen. Hast Du eine performantere Idee? :)

      Gruß Michi

      1. Hi Michi,

        Bisschen einen Denkanstoß kann ich jetzt überhaupt gebrauchen, da ich jetzt an dieser von Dir genannten Problemstelle angekommen bin...

        Freut mich das ich dir etwas helfen konnte. Die Nodes sind zwar recht komplex aber eine saubere Methode wie ich denke.

        Was bleiben für Alternativen... Socket-Verbindung oder Shared Memory, wozu von JavaScript aus allerdings auch wieder HTTP-Anfragen starten müssen. Hast Du eine performantere Idee? :)

        Ich habe das kurz danach wieder eingestellt, auch weil dann meine Abschlussarbeiten kamen. Ich habe weiter in diese Richtung nicht gearbeitet desshalb kann ich dir da jetzt nicht weiter helfen.

        Gruß,
        Rekire

  2. parent.chattextbereich.document.write ( werte );

    und danach ein :
    parent.chattextbereich.document.close(); ?

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. parent.chattextbereich.document.write ( werte );

      und danach ein :
      parent.chattextbereich.document.close(); ?

      Hab zwar inzwischen einen anderen Lösungsansatz im Visier, aber vermutlich hätte das den Hänger beseitigt. ;)