Ajax kódom minden harmadik kérdésre kiakad
Van egy kis gondom az alábbi ajax kóddal firefox alatt:Kb. stabilan minden 3. kérésre kiakad, és nem megy több kérés a szerver felé. Az ajaxReqBusy értéke false. Ráfut a "http.open('get', url);" sorra és ott akad ki, ha eléje hozom a " http.onreadystatechange = handleAjaxResponse;" sort, amúgy meg fordítva.
Láttok benne valami hibát? :-)
■
// Ajax lekeresek
function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
var ajaxReqBusy = false;
function sendReqAjax(url) {
if (ajaxReqBusy) {
setTimeout("sendReqAjax('"+url+"')", 100);
} else {
ajaxReqBusy = true;
// setBusy();
http.open('get', url);
http.onreadystatechange = handleAjaxResponse;
http.send(null);
}
}
function handleAjaxResponse(){
if(http.readyState == 4){
if (http.status == 200) {
var response = http.responseText;
var update = new Array();
if(response.indexOf('|' != -1)){
update = response.split('|');
for (i=0;i<update.length;i=i+2){
document.getElementById(update[i]).innerHTML = update[i+1];
}
}
} else {
alert('Hiba a hálózati kapcsolatban! : '+http.status);
}
// unsetBusy();
ajaxReqBusy=false;
}
}
Láttok benne valami hibát? :-)
hiba
Most bekapcsoltam a firebug-ot is.
Ez ezt a hibát dobja ekkor:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: javascript: eval(__firebugTemp__); :: anonymous :: line 1" data: no]
Firebug nélkül egy alert volt a
A böngésző nem jelzett semmi hibát, viszont a 2. alert már nem futott le.
Végre
A probléma az volt, hogy ebből az ablakból nyitottam egy másikat, amelyből visszatéréskor a szűlő ablak egy funkciója hívódott meg.
Ez a funkció hívott egy ajaxot a visszatérési eredménnyel.
3. ilyen után akadt ki.
Most úgy csinálom, hogy visszatérésként setTimeout-al hívom meg a szülő funkcióját így működik.
Úgy tűnik mindig annál a sornál, mindig a 3. lekérésnél akadt meg. Elég érdekes :-)