私は、いくつかの平行した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;
:
はと現在のonreadystatechangeに置き換えることを提案します。 http://www.erichynds.com/jquery/using-deferreds-in-jquery/ – hvgotcodes
jqueryを使用していませんが、そうだった場合、これはおそらく役立ちます:http://api.jquery.com/ajaxStop/ – Robin
srry imはjavascript/ajaxに新規に追加され、現在はjqueryを使用していません。あなたはいくつかのコードで私を助けることができます。 – Gustavo