我在寫一個需要執行一些並行Ajax請求的腳本。我正在使用ajax數組,但是當所有請求都完成時,我想執行一些代碼(使某些標記可見)。這裏的代碼希望你能幫助我。多個Ajax請求狀態?
function Update_All(){
var loading = document.getElementById("loading_image");
var actualizacion_completa = document.getElementById("actualizacion_completa");
loading.style.display = "";
actualizacion_completa.style.display = "none";
var i=1;
var ajax= new Array(20);//objetoAjax();
var limit = 1;
var ready = 1;
for (i=1;i<=20;i++)
{
var index = i-1;
ajax[index] = objetoAjax();
var voatencion = document.getElementById("idatencionf"+i);
var vohoras = document.getElementById("vhorasf"+i);
var vtarifa = document.getElementById("tarifaclientef"+i);
var voexonerado = document.getElementById("vexoneradof"+i);
var voaprobado = document.getElementById("vaprobadof"+i);
var campo = document.getElementById("f"+i+"c1");
if(typeof(campo) != 'undefined' && campo != null){
var valor = 1;
if(campo.innerHTML=="Si") valor = 2;
ajax[index].open("GET","update.php?atencion="+voatencion+"&opc="+5+"&valor="+valor+"&exonerado="+voexonerado.value+"&tarifa="+vtarifa.value+"&horas="+vohoras.value);
ajax[index].send(null);
limit = i;
ajax[index].onreadystatechange=function() {
if (ajax[index].readyState==4 && ajax[index].status == 200) {
ready++;
if(ready == limit){
loading.style.display = "none";
actualizacion_completa.style.display = "";
}
}
}
}
else{
break;
}
}
}
問題已準備好永遠不會等於極限。 PS:srry關於西班牙語變量的名稱;
這個問題被問過所有的時間。看到http://www.erichynds.com/jquery/using-deferreds-in-jquery/ – hvgotcodes
你不使用jquery,但如果你是,這可能會幫助:http://api.jquery.com/ajaxStop/ – Robin
srry即時通訊新的javascript/ajax和現在即時通訊不使用jQuery。你能幫我一些代碼嗎? – Gustavo