मुझे AJAX तेज और कार्यात्मक बनाने में समस्या हो रही है। मैं एक ajax भेज रहा और आगे की प्रक्रिया के लिए दिए गए डेटा की जरूरत हैjQuery अजाक्स: * async * अनुरोध सफलता तक जारी होने तक प्रतीक्षा कैसे करें?
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
असल में,: यहाँ छद्म/प्रोटोटाइप कोड है।
यदि मैं सच में async सेट करता हूं, तो फ़ंक्शन तुरंत खाली 'arr' सरणी देता है, इस प्रकार पूरी स्क्रिप्ट विफल हो जाती है। लेकिन अगर मैं झूठ बोलने के लिए async सेट करता हूं, तो यह काम करता है, लेकिन बहुत लंबा लगता है।
मैंने यह $.ajaxQueue(); चीज़ देखी है, लेकिन स्पष्ट रूप से मुझे यह बिल्कुल समझ में नहीं आता है, और मुझे नहीं पता कि यह काम करेगा या नहीं।
तो सवाल यह है कि, सबसे पहले, क्या कोई तरीका है कि मैं एक ही समय में सभी एजेक्स अनुरोधों को अतुल्यकालिक रूप से भेज सकता हूं और सभी AJAX किए जाने के बाद फ़ंक्शन प्रतीक्षा करें और वापस लौटें []। यदि नहीं, तो AJAXQueue मेरे मामले में काम करेगा? (किसी न किसी उदाहरण कृपया?)
क्या आप इसे एक ही AJAX अनुरोध में नहीं भेज सकते हैं और सभी 10ish उत्तरों के परिणामों को पार्स कर सकते हैं? – Peeter
यह संभव है, लेकिन इसका मतलब है कि मुझे सर्वर की तरफ संपादन करना होगा और यह मेरे लिए गोता लगाने के लिए एक पूरी गड़बड़ है। मैं इसे jQuery पर करना पसंद करूंगा। – JQonfused
1 अनुरोध बेहतर है तो 10+ अनुरोध। आप ब्राउज़र अनुरोध सीमा को मारने को समाप्त कर देंगे। – Peeter