2012-02-07 14 views
7

मेरे पास तीन AJAX अनुरोध एक दूसरे के बाद फायरिंग कर रहे हैं, और मैं एक साथ सभी डेटा को प्रतिबिंबित करने में सक्षम होना चाहता हूं।तीन 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 और #results3 सभी एक ही समय में उनके रिश्तेदार डेटा के साथ लोड करने के लिए की जरूरत है। उपरोक्त कोड यह नहीं कर रहा है।

उत्तर

10

आप jQuery का उपयोग कर सकते हैं deferred object 1.5 संस्करण में कहा:

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

ऊह कि अच्छा लग रहा है .... –

+0

समय कुछ होमवर्क करने के लिए। धन्यवाद! – Norse

+0

हां, स्थगित वस्तु बहुत शक्ति है और कोड पठनीयता में सुधार करती है –

संबंधित मुद्दे