我在写一个需要执行一些并行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