क्या सभी उत्कृष्ट jQuery AJAX अनुरोधों को त्यागने का कोई आसान तरीका है? मेरा आवेदन बहुत से अनुरोधों को खींचने में सक्षम है, इसलिए दौड़ समस्याग्रस्त हो जाती है। मैंने हैकिश समाधान (अर्थात्, अनुरोध को पूरा करने पर चेक किए गए ध्वज में डाल दिया है), लेकिन वैश्विक बकाया अनुरोधों को पूरा करने के लिए यह बहुत अच्छा होगा।jQuery सभी बकाया AJAX अनुरोधों को छोड़ दें
उत्तर
असाइन एक सरणी के एक तत्व के रूप में हर ajax अनुरोध:
var requests = [];
requests.push($.ajax({
type: 'POST',
url: '...',
success: successfunc
});
);
और मारने के लिए:
$.each(requests, function(i, v) {
v.abort();
});
मैं कहूंगा कि सभी एजेक्स अनुरोधों को एक सरणी में स्टोर करें। जब आपको मारने की आवश्यकता होती है तो सरणी में सभी मानों के माध्यम से बस लूप करें और abort() को कॉल करें। जब कोई अनुरोध पूरा हो जाता है या सरणी से पॉप को निरस्त कर दिया जाता है।
XMLHttpRequest में एक abort() फ़ंक्शन है। $ .ajax आपको xhr ऑब्जेक्ट पर अपना हाथ लेने देता है। सभी बकाया xhr के रिकॉर्ड रखें और xhr.abort()
पर जाएं जिसे आप समाप्त करना चाहते हैं।
दूसरों के रूप में कहा है, .abort() विधि का उपयोग करें। हालांकि, यह केवल उसी डोमेन के भीतर कॉल पर काम करता है। एक बार जब आप क्रॉस-साइट कॉल (jsonp के साथ) में प्रवेश करते हैं, तो .abort() विधि को शून्य पर सौंप दिया जाता है, इसलिए वास्तव में आग/काम नहीं होता है।
इस रूप में ध्यान देने योग्य मुझे अंतहीन डिबगिंग समय कई एक छोटे से चंद्रमा पहले की वजह से :)
जिम
कूल जानकारी, उस सिर के लिए धन्यवाद । – Anders
एंडर्स - खुशी ... (आईई पर नवीनतम स्थिति की जांच करें क्योंकि यह मुख्य रूप से आईईएम में XMLHttpRequest था जो मेरे मामले में ब्राउज़र अज्ञेयवादी बनाने की कोशिश करते समय एक मुद्दा था)। मुझे याद है कि निरस्त 'टाइमआउट' एक्स-साइट कॉल पर 0 पर सेट है। वैसे भी .. :) –
केन Redler के समाधान के आधार पर, मैं अपने प्रारंभ में रखते:
window.requests = []
$.ajaxSetup({
beforeSend: function(xhr){
var new_request_list = [xhr]
$.each(window.requests, function(k,v){
if(v.readyState != 4) new_request_list.push(v)
})
window.requests = new_request_list
}
})
मैं वैश्विक चर को पूर्ण XHR ऑब्जेक्ट्स के साथ भीड़ प्राप्त करने से रोकने के लिए new_request_list
के साथ स्निपेट में डालें।
मैं क्लीनअप फ़ंक्शन को '$ .ajaxSetup' या' xhr.onreadystatechange' में डाल दूंगा, लेकिन मुझे चिंता है कि यह जो कुछ भी jQuery करता है उसके साथ हस्तक्षेप करेगा। यह समाधान ठीक काम करता प्रतीत होता है। –
मुझे निम्नलिखित jsfiddle पर मिला। यह अधिकतर ऊपर जैसा ही है, सिवाय इसके कि यह पूरा होने के बाद प्रत्येक अनुरोध को हटा देगा। ऊपर दिए गए समाधान केवल सरणी में जोड़ते रहते हैं। तो समय के साथ, अगर आप बहुत सारे AJAX कॉल कर रहे हैं तो यह बड़ा हो सकता है। जब आप सभी बकाया अनुरोधों को निरस्त करना चाहते हैं तो आप $.xhrPool.abortAll();
पर कॉल करते हैं।
// $.xhrPool and $.ajaxSetup are the solution
$.xhrPool = [];
$.xhrPool.abortAll = function() {
$(this).each(function(idx, jqXHR) {
jqXHR.abort();
});
$.xhrPool = [];
};
$.ajaxSetup({
beforeSend: function(jqXHR) {
$.xhrPool.push(jqXHR);
},
complete: function(jqXHR) {
var index = $.xhrPool.indexOf(jqXHR);
if (index > -1) {
$.xhrPool.splice(index, 1);
}
}
});
- 1. JQuery - प्रत्येक फ़ंक्शन को छोड़ दें
- 2. धागे को छोड़ दें?
- 3. नवीनतम AJAX अनुरोध प्राप्त करें और अन्य को छोड़ दें
- 4. jQuery थ्रॉटलिंग और AJAX अनुरोधों की कतार
- 5. कुंजीस्ट्रोक अनुक्रम को छोड़ दें?
- 6. लपेटने div को हटा दें और सभी उप-divs बरकरार छोड़ दें?
- 7. PLSQL - उपयोगकर्ता के सभी डेटाबेस ऑब्जेक्ट्स को छोड़ दें
- 8. AJAX अनुरोधों की सुरक्षा
- 9. प्रोफ़ाइल में निर्भरता को छोड़ दें
- 10. सभी AJAX अनुरोधों के बाद अलर्ट कैसे कॉल करें?
- 11. jQuery 1.5.1 सभी AJAX() कॉल
- 12. तीन AJAX अनुरोधों को सिंक्रनाइज़ करें
- 13. पायथन सिद्धांत: पूरे ब्लॉक को छोड़ दें?
- 14. जावा फोरैच पहले पुनरावृत्ति को छोड़ दें
- 15. java.lang को छोड़ दें। * क्लोजर नेमस्पेस
- 16. टाइमस्टैम्प से मिलीसेकंद भाग को छोड़ दें
- 17. बैश ढूंढें, माता-पिता को छोड़ दें?
- 18. एक पीएल/एसक्यूएल प्रोग्राम को छोड़ दें
- 19. सूची समझ में इटेटरेटर को छोड़ दें?
- 20. AJAX अनुरोधों में संबंधित यूआरएल
- 21. jQuery AJAX अनुरोधों में सापेक्ष बनाम पूर्ण यूआरएल
- 22. AJAX अनुरोधों में अनधिकृत परिणाम
- 23. रेल में AJAX के माध्यम से किए गए एचटीएमएल अनुरोधों का जवाब कैसे दें
- 24. AJAX अनुरोधों की विनम्र आवृत्ति?
- 25. TFS 2012 बकाया प्राथमिकता
- 26. ट्विटर खोज (atom) API - रीट्वीट को छोड़ दें
- 27. jQuery AJAX और "कब" फ़ंक्शन
- 28. jQuery: जब तक प्रतीक्षा करें सभी ajax कॉल तो
- 29. असेंबली में प्रवेश करें और छोड़ दें?
- 30. jQuery AJAX
धन्यवाद। ऐसा लगता है कि चाल चल रही है। मैंने थोड़ा अलग कार्यान्वयन चुना है जो मैं विस्तार से [यहां] (http://stackoverflow.com/questions/3313059/jquery-abandon-all-outstanding-ajax-requests/3313954#3313954) –