Estoy teniendo un problema para hacer ajax rápido y funcional. Aquí está el código de pseudo/prototipo:jQuery Ajax: ¿cómo esperar hasta que las solicitudes * async * finalicen antes de continuar?
function blah1(arg1){//arg1 is an array, roughly 10 elements
var arr[];
$.each(arg1, function(i){
//blah code
$.ajax({
//blah options
async: true,
success: function(data){
arr[i] = data.someInt;
}//end success
});//end ajax
}//end each
return arr;
}//end function
Básicamente, estoy enviando un Ajax y necesitan los datos devueltos para su posterior procesamiento.
Si configuro async en true, la función devuelve inmediatamente una matriz 'arr' vacía, por lo que falla todo el script. Pero si configuro async en falso, entonces funciona, pero lleva mucho tiempo.
He visto esto $.ajaxQueue();, pero francamente no lo entiendo del todo, y no sé si funcionará.
Entonces, la pregunta es, en primer lugar, ¿hay alguna forma de poder enviar asíncronamente todas las solicitudes ajax al mismo tiempo y dejar que la función espere y devuelva arr [] después de que se hagan todos los ajax? Si no, ¿funcionará el ajaxQueue en mi caso? (ejemplo aproximado, por favor?)
¿No puede enviarlo todo en una sola solicitud AJAX y analizar los resultados de todas las 10 respuestas? – Peeter
Eso es posible, pero eso significa que tendré que hacer la edición por el lado del servidor y eso es todo un desastre en el que me puedo meter. Preferiría hacerlo en jQuery. – JQonfused
1 solicitud es mejor que 10+ solicitudes. Usted terminará golpeando el límite de solicitud de navegadores. – Peeter