molily: AJAX-Script hängt sich nach einiger Zeit auf

Beitrag lesen

Hallo,

function stateChanged()
{
if (xmlHttp.readyState==4)
{
  if(xmlHttp.status==200)
  {
   //alert("Fertig geladen!");
   document.getElementById("Test").innerHTML=xmlHttp.responseText;
  }
  else
  {
   document.getElementById("Test").innerHTML="Fehler beim empfangen der Daten: "+xmlHttp.statusTest;
  }
}

setTimeout("GET()", 2000);
}

Du startest bei jedem readystatechange-Ereignis einen Timeout. Die Anzahl der Anfragen nehmen dann exponentiell zu, weil mit jedem XMLHttpRequest vier weitere gestartet werden. Damit bombst du natürlich den Server mit Anfragen voll und zwingst den Browser in die Knie. Starte ihn nur dann, wenn readyState == 4 ist, also der letzte abgelaufen ist.

Übrigens kannst du XMLHttpRequest-Objekte wiederverwenden. Wenn es dir um Performance geht, dann solltest du auch die Browserabfrage nicht immer wiederholen (wobei sich das erübrigt, wenn du das XMLHttp-Request-Objekt weiterverwendest).

Mathias