JavaScript Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JavaScript Problem

    Hallo!
    Also... ich entwickle zur Zeit einen Chat ( mit Ajax ). Jetzt hab ich allerdings ein kleines JavaScript Problem. Das ganze könnt ihr euch hier ansehen:
    ENTFERNT
    Die Problemstelle im Quelltext ist:
    Code:
    <script type="text/javascript">
    var last_id = -1;
    function receiveChatText() {
    	if ( httpReceiveChatText.readyState == 4 || httpReceiveChatText.readyState == 0 ) {
    		httpReceiveChatText.open( 'GET', 'get_output.php?last_id=' + last_id );
    		httpReceiveChatText.onreadystatechange = handlehHttpReceiveChatText;
    		httpReceiveChatText.send( null );
    	}
    }
    function handlehHttpReceiveChatText() {
    	if ( httpReceiveChatText.readyState == 4 ) {
    		document.getElementById( 'chat_output' ).innerHTML =
     document.getElementById( 'chat_output' ).innerHTML +
     '<div class="line">' + httpReceiveChatText.responseText + '</div>';
    	}
    	setTimeout ( 'receiveChatText();', 2500);
    }
    receiveChatText();
    </script>
    Das Problem ist das sich die Anzahl der Aufrufe der Funktion pro Aufruf verdoppeln. Ok, klingt vielleicht komisch. Ich versuch es mal deutlich zu machen:
    1. Aufruf der Funktion: 1 Aufruf
    2. Aufruf der Funktion: 2 Aufrufe
    3. Aufruf der Funktion: 4 Aufrufe
    4. Aufruf der Funktion: 8 Aufrufe
    usw.
    Aber ich hätte natürlich pro Aufruf der Funktion auch wirklich nur einen Aufruf :-). Kann mir da jemand helfen?
    Zuletzt geändert von MrBona; 16.10.2005, 11:14.
    MfG,
    MrBona

  • #2
    OK, das Problem hat sich erledigt.
    Code:
    setTimeout ( 'receiveChatText();', 2500);
    muss innerhalb von
    Code:
    if ( httpReceiveChatText.readyState == 4 ) {
    [...]
    }
    sehen
    MfG,
    MrBona

    Kommentar


    • #3
      Auf den ersten blick würde ich mal sagen: rekursion.

      du rufst in der ersten funktion immer wieder die zweite auf. mit einem timeout.
      EDIT:
      Okay..

      Kommentar

      Lädt...
      X