Mam skrypt Ajaxa(jak poniżej) i przy ładowaniu strony sprawdzam czy użytkownik jest zalogowany(do pliku php i odpowiedź JSON) i pobieram główną treść strony, jednak pojawiają się błędy. Ponieważ pytania są zadane jednocześnie, jak gdyby "nachodzą" na siebie i przez to w odpowiedzi dostaje błędne wartości. Jak zrobić żeby skrypt pobrał jedno zapytanie, później drugie, trzecie .. etc i przechował je gdzieś i czekał aż poprzednie zostanie zrealizowane, później wysyłał następne itd.
?
Siedzę nad tym już dłuższy czas, dlatego bardzo proszę o pomoc!
DZIĘKI!
Kod
Ajax={};
Ajax.sendRequest=function(method, url, params, callBack){
this.request = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
this.request.onreadystatechange=callBack;
if(method=='GET' && params!=null){
url=url+'?'+params;
params=null;
}
this.request.open(method, url, true);
this.request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
this.request.send(params);
}
Ajax.chceckReadyState=function(){
switch(this.request.readyState){
case 0:
document.getElementById('ajax').innerHTML='<span class="ajax">Wysyłanie zapytania ...</span>';
break;
case 1:
document.getElementById('ajax').innerHTML='<span class="ajax">Ładowanie danych</span>';
break;
case 2:
document.getElementById('ajax').innerHTML='<span class="ajax">Załadowano</span>';
break;
case 3:
document.getElementById('ajax').innerHTML='<span class="ajax">Gotowy</span>';
break;
case 4:
document.getElementById('ajax').innerHTML='';
return (this.request.status==200);
default:
document.getElementById('ajax').innerHTML='<span class="ajax">Wystąpił nieoczekiwany błąd!</span>';
}
}
Ajax.getResponse=function(){
if(this.request.getResponseHeader('Content-Type').indexOf('xml') != -1){
return this.request.responseXML.documentElement;
}else{
return this.request.responseText;
}
}
Ajax.sendRequest=function(method, url, params, callBack){
this.request = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
this.request.onreadystatechange=callBack;
if(method=='GET' && params!=null){
url=url+'?'+params;
params=null;
}
this.request.open(method, url, true);
this.request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
this.request.send(params);
}
Ajax.chceckReadyState=function(){
switch(this.request.readyState){
case 0:
document.getElementById('ajax').innerHTML='<span class="ajax">Wysyłanie zapytania ...</span>';
break;
case 1:
document.getElementById('ajax').innerHTML='<span class="ajax">Ładowanie danych</span>';
break;
case 2:
document.getElementById('ajax').innerHTML='<span class="ajax">Załadowano</span>';
break;
case 3:
document.getElementById('ajax').innerHTML='<span class="ajax">Gotowy</span>';
break;
case 4:
document.getElementById('ajax').innerHTML='';
return (this.request.status==200);
default:
document.getElementById('ajax').innerHTML='<span class="ajax">Wystąpił nieoczekiwany błąd!</span>';
}
}
Ajax.getResponse=function(){
if(this.request.getResponseHeader('Content-Type').indexOf('xml') != -1){
return this.request.responseXML.documentElement;
}else{
return this.request.responseText;
}
}