xmlobj.readyState hat nur nach Useraktivität den Wert 4

C

chofer02

Hi, bin gerade dabei einen Javascript und PHP basierten Chat zu erstellen.
Code:
   var user='Gast';
  var message=document.getElementsByTagName('form')[0].yourtext.value;
   if(message.length>100){message=message.substring(0,100)};
   document.getElementsByTagName('form')[0].yourtext.value='';
   xmlobj.open('POST','sendchatdata.php',true);
   xmlobj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
   xmlobj.send('user='+user+'&message='+message);
   alert("debugging!");
   xmlobj.onreadystatechange=senderStatusChecker();
aber ich schaffe es nicht dass der readystate des xmlobj "4" wird ohne dass ich bei diesem alter auf ok klicke.

Wo könnte das Problem liegen?

Gruß
Christoph
 
Code:
xmlobj.onreadystatechange=senderStatusChecker();
...lasse dort mal die Klammern am Schluss weg.

Der Unterschied...mit Klammern ist es ein Funktionsaufruf.
Er erfolgt, sobald diese Zeile gelesen wird, und nicht, wie du vielleicht dachtest, beim event "onreadystatechange".

Dass es mit dem alert klappt, liegt daran, dass solange die alert-Box anwesend ist, das Skript angehalten ist.... der Request ist aber schon gesendet, läuft also weiter.
Der Zeitraum, bis du die alert-Box bestätigst, reicht dem Server aus, um die Anfrage zu beantworten-> folglich ist der readystate nach dem Bestätigen des alerts 4.

Ohne die Klammern wird eine Eventüberwachung draus..... jedes mal, wenn "onreadystatechange" feuert, wird die Funktion "senderStatusChecker()" ausgeführt.



Um besser zu verdeutlichen, was ich meine, kannst du ja mal folgende Zeile testen :)
Code:
navigator.onkaffeekochen=alert('Uuups, ein Browser der Kaffee kocht?');
 
Zurück