वास्तव में सवाल यह है कि विषय उतना आसान है जितना विषय कहता है। क्या विभिन्न AJAX हैंडलरों को उच्च/निम्न प्राथमिकता देने का कोई तरीका है (जिसका मतलब है कि वे पहले आग लगेंगे)?jQuery - सेट अजाक्स हैंडलर प्राथमिकता
मेरा क्या मतलब है? खैर, मुझे काफी विशाल वेब-ऐप से निपटना होगा। अजाक्स अनुरोधों के टन विभिन्न मॉड्यूल में निकाल दिए जाते हैं। अब, मेरा लक्ष्य एक साधारण सत्र-टाइमआउट तंत्र को लागू करना है। प्रत्येक अनुरोध वर्तमान सत्र-आईडी को पैरामीटर के रूप में भेजता है, यदि सत्र-आईडी अब मान्य नहीं है, तो मेरी बैकएंड स्क्रिप्ट एक कस्टम प्रतिक्रिया-हेडर सेट (मान एक यूरी है) के साथ अनुरोध देता है।
तो मैं मूल रूप से इस
window.jQuery && jQuery(document).ajaxComplete(function(event, xhr, settings) {
var redirectto = xhr.getResponseHeader('new_ajax_location');
if(redirectto) {
location.href = redirectto;
}
});
की तरह यह करता है निश्चित रूप से एक आकर्षण की तरह काम लिए जा रहा हूँ, लेकिन मेरी समस्या यह है कि इस वैश्विक ajax घटना वास्तव में समय के निकाल दिया करने के लिए पहले 100%, की जरूरत है जो ऐसा नहीं है। उन मूल AJAX- अनुरोध हैंडलर में से कुछ गायब या अप्रत्याशित डेटा की वजह से एक त्रुटि फेंक देंगे, उस स्थिति में, वैश्विक हैंडलर कभी निष्पादित नहीं होता है।
अब, अगर मैं प्रत्येक अनुरोध हैंडलर से गुजरने की आवश्यकता नहीं रखता और अमान्य सत्र डेटा प्रतिक्रियाओं के लिए इसे असफल बना देता तो मुझे बहुत खुशी होगी। मैं एक विशेष स्थान पर नौकरी करना पसंद करूंगा। लेकिन मैं कैसे सुनिश्चित कर सकता हूं कि मेरा वैश्विक हैंडलर पहले निष्पादित हो जाएगा?
शायद 'ऑनस्यूप' कॉलबैक का उपयोग करके। – Stefan
@Stefan: मुझे अनुरोध के लिए सभी संभावित परिणामों को पकड़ने की आवश्यकता होगी, इसलिए 'पूर्ण' बहुत बढ़िया है। लेकिन मैंने दुर्भाग्य से उसी व्यवहार के साथ मैन्युअल रूप से 'सफलता' और 'त्रुटि' सेट करने के लिए भी जांच की। – jAndy
http://stackoverflow.com/questions/290254/how-to-order-events-bound-with-jquery से संबंधित है, क्योंकि AJAX ईवेंट कोर इवेंट सिस्टम का उपयोग करके कार्यान्वित किए जाते हैं। –