2012-02-07 19 views
7

Tengo tres solicitudes AJAX activadas una después de otra, y me gustaría poder repetir todos los datos simultáneamente.Sincronizar tres solicitudes ajax

$.ajax ({ 
     type: "POST", 
     url: "page1.php", 
     data: "var1=" + var1, 
     success: function(msg) { 
      $("#results2").load("page2.php", 
      function (responseText, textStatus, XMLHttpRequest) { 
       $("#results3").load("page3.php", 
       function (responseText, textStatus, XMLHttpRequest) { 
        if (textStatus == "success") { 
         $("#results1").html(msg); 
        } 
       }); 
      }); 
     } 
    }); 

#results1, #results2 y #results3 toda la necesidad de ser cargado con los datos relativos al mismo tiempo. El código anterior no lo está haciendo.

Respuesta

10

puede utilizar deferred object de jQuery añadido en la versión 1.5:

$.when($.ajax({1}) , $.ajax({2}) , $.ajax({3})) 
.then(function() { 
    alert("tada"); 
}); 
+0

Ooh que se ve bien .... –

+0

tiempo para hacer un poco de tarea. ¡Gracias! – Norse

+0

sí, el objeto diferido es muy potente y mejora la legibilidad del código –

Cuestiones relacionadas