moe: Internet Explorer und setTimeout() - Probleme

Hallo miteinander!

Ich arbeite momentan gerade an einem AJAX/PHP Chat und habe ein kleines Problem mit dem Internet Explorer. Und zwar hab ich eine Funktion zum abrufen der neuen Nachrichten im Chat, welche stark vereinfach so aussieht:

  
function ajax_read() {  
    xmlhttp.onreadystatechange = function() {  
        if (xmlhttp.readyState==4) {  
            chatresponse = xmlhttp.responseText;  
            if (chatresponse.length > 0 ){  
                document.getElementById("i_chatwindow").innerHTML += chatresponse ;  
            }  
            setTimeout("ajax_read()", 1000);  
        }  
    }  
    url = "../func/chat_read.php?sid=09u125gsabd4oifcirq3b0dk24&lastid=" + lastid ;  
    xmlhttp.open('GET',url,true);  
    xmlhttp.send(null);  
}

simpel gesagt geht es um die Funktion setTimeout im Code, welche dafür sorgen sollte, das nach jedem erfolgreichem Request (xmlhttp.readystate == 4) nach 1000ms eine neue AJAX-Anfrage an den Chat gesendet wird. Das Funktioniert prima im FF und in Opera wie gesagt, nur der IE verweigert jegliche zusammenarbeit :(. Ich habe schon rausgefunden das es offenbar daran liegen muss, das ich die Funktion ajax_read aufrufe, weil wenn ich nur einen timeout mit einem Alert mache geht das. Gibts da einen besonderen Kniff oder sehe ich etwas nicht?

Wäre dankbar für jede Antwort.

  1. Hallo,

    gegebenfalls musst du die Reihenfolge umstellen:
    http://keelypavan.blogspot.com/2006/03/reusing-xmlhttprequest-object-in-ie.html
    oder abort() aufrufen. Such mal nach »reuse xmlttprequest«.

    Mathias

    1. Hallo Mathias,

      danke genau das wars!

      Ich hab mir schon Nächte um die Ohren geschlagen, alles komplett umgestellt usw. aber auf das wäre ich nie gekommen! Somit funktioniert mein Chat wieder auf dem IE.

      Beste Grüße,
      Michael