AJAX Zeit Problem

Hallo Zusammen,

mal wieder ein Javascript Problem mit AJAX. Ich muß Daten
von einem Server per AJAX abfragen, das geht auch, aber leider
macht die Funktion die den Call macht weiter obwohl die Daten
noch nicht angekommen sind. Also Praktisch er zeigt praktisch
kein Ergebnis an oder gibt NULL zurück. Aber wann man etwas
warten würde dann wären die richtigen Werte da ??
Wie kann ich Javascript dazu bewegen zu warten bis die Werte da sind und dann in der jeweiligen Funktion fortzufahren.

Danke für jede Zuschrift
Mani

function common()
{
 this.xmlhttp;
 this.xmlready=0;

 this.start=function()
 {
 var xmlhttp; 

 try
 {
 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 this.xmlhttp=xmlhttp;
 }
 catch (e)
 {
 try
 {
 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 this.xmlhttp=xmlhttp;
 }
 catch (E)
 {
 xmlhttp = false;
 }
 }

 if (!xmlhttp && typeof XMLHttpRequest!='undefined')
 {
 xmlhttp = new XMLHttpRequest();
 this.xmlhttp=xmlhttp;
 }
 }

 this.ajaxcall = function(link)
 {
 var t=this.ajaxcall(link,"GET",true);
 return t;
 }

 this.ajaxcall = function(link,Methode,warte)
 {

 var xml=this.xmlhttp;
 var re="";
 this.xmlready=2;
 var ready=2;

 if(xml)
 {
 xml.onreadystatechange=function()
 {

 if ((xml.readyState==4) && (xml.status==200))
 {
 var tooltiptext = xml.responseText; 
 if(tooltiptext != "")
 {
 re=tooltiptext; 
 }
 }
 }
 xml.open("GET",link,true); //stelle anfrage an den server
 xml.send(null);
 return re;
 }
 }
}

Du musst den Status deine XMLHttpRequest-Objekts prüfen. Wenn er gleich 4 ist, sind Daten da. Schau dir mal das hier an:

 xmlHttp.onreadystatechange = function () {  
 if (xmlHttp.readyState == 4) {  
 alert(xmlHttp.responseText);  
 }  
 };  

Wenn sich der Status ändert, tritt das Event onreadystatechange auf, welches an die Function aus dem Code gebunden ist. Wenn der Status dann auch noch 4, also „alles fertig“ ist, wird der responseText verarbeitet.

Grüße,
Nik


da hat Dominik recht. Zusaetzlich wurde ich pruefen welche status die seite hat:
xmlhttp.onreadystatechange = function () {
if(xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
if (xmlhttp.status == 500) {
alert (‚Ein fehler ist aufgetreten‘);
}
}
}
ein 500’er fehler oder 404 moechte man meinstens nicht angezeigt bekommen.

gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]