मेरे पास रीढ़ की हड्डी का एप्लिकेशन है जिसमें कई विचार हैं। दृश्यों के बीच स्विचिंग विभिन्न संग्रह प्राप्त करने के लिए अजाक्स अनुरोधों को ट्रिगर करता है। अगर कोई नया शुरू होता है तो मैं वर्तमान "पढ़ा" AJAX अनुरोध को रोकना चाहता हूं। क्या यह संभव है?क्या बैकबोन "पढ़ने" अनुरोधों को रोकना संभव है
उत्तर
ठीक है तो यहाँ मैं
मैं एक चर
app.fetchXhr = this.model.fetch();
में अनुरोधों को लाने मेरी रूटर में बचत कर रहा हूँ क्या किया है, मैं एक समारोह है कि विचारों को बंद करने और विचारों प्रतिपादन का ख्याल रखता है है । यह प्रत्येक दृश्य परिवर्तन के लिए आवश्यक किसी ट्रिगर को ट्रिगर करने का भी ख्याल रखता है लेकिन यह इस प्रश्न में प्रासंगिक नहीं है।
कुछ भी करने से पहले, इस रूटर फ़ंक्शन निष्पादित निम्नलिखित
//Stop pending fetch
if(app.fetchXhr.readyState > 0 && app.fetchXhr.readyState < 4){
app.fetchXhr.abort();
}
मुझे आशा है कि इस मदद करता है
मुझे लगता है कि आप jQuery के साथ रीढ़ की हड्डी का उपयोग कर रहे हैं। यदि हां, तो निम्नलिखित प्रश्न आप के लिए एक जवाब देने लगता है:
Abort Ajax requests using jQuery
बैकबोन fetch
xhr
वे के बारे में, IIRC बात कर रहे हैं देता है।
लेकिन पूरा होने के बाद xhr वापसी नहीं करेगा? सुनिश्चित नहीं है कि बैकबोन – Xerri
में इसे लागू करने के लिए आपके द्वारा प्रदान किए गए लिंक का उपयोग कैसे करें बैकबोन सामान्य AJAX कॉल (ज़िप्टो या jQuery के माध्यम से) का उपयोग करता है, जिसका अर्थ है कि सर्वर को कॉल असीमित है और अभी भी संभावित रूप से समाप्त हो सकता है। – JayC
शायद एक देर जबाब :) टाइमआउट
उपयोग एक टाइमआउट मान निर्दिष्ट करने के लिए। यह त्रुटि फ़ंक्शन को ट्रिगर करेगा। यहां क्वेरी को निरस्त किया जा सकता है।
क्या कोई कारण है कि आप क्वेरी को निरस्त करना चाहते हैं?
मैं निरस्त करना चाहता हूं क्योंकि अगर क्वेरी पूर्ण होने से पहले मैं दृश्य बदलता हूं, तो fetch पूरा होने पर एक त्रुटि उत्पन्न की जाएगी और दृश्य हटा दिया जाएगा। – Xerri
कोई और देर से उत्तर देने के मामले में कोई और इस में चलता है।
मैंने एक्सएचआर ऑब्जेक्ट पूल जोड़ने और लाने पर लंबित अनुरोधों को रद्द करने का विकल्प बैकबोन.sync को ओवरराइट करना समाप्त कर दिया।
var sync = Backbone.sync
, xhrPool = [];
Backbone.sync = function(method, model, options) {
options = options || {};
if (method === 'read') {
if (options.abortPending == true) {
for (var i = 0; i < xhrPool.length; i++) {
if (xhrPool[i]['readyState'] > 0 && xhrPool[i]['readyState'] < 4) {
xhrPool[i].abort();
xhrPool.splice(i, 1);
}
}
}
// cleanup xhrPool
// todo: make removal from the pool an 'always' jqXHR callback
// instead of cleanup on every read?
for (var i = 0; i < xhrPool.length; i++) {
if (xhrPool[i]['readyState'] === 4) {
xhrPool.splice(i, 1);
}
}
var xhr = sync(method, model, options);
xhrPool.push(xhr);
return xhr;
} else {
return sync(method, model, options);
}
};
बहुत अच्छा .... यदि आप किसी विशेष दृश्य में एकाधिक फ़ेच अनुरोध करते हैं तो लचीला नहीं हो सकता है। एफवाईआई ... मुझे जिन कारणों की आवश्यकता थी, उनमें से एक था जब एक fetch पूरा हो जाता है तो त्रुटियों को फेंकने से बचने के लिए, लेकिन दृश्य बदल गया है (इसलिए डीओएम तत्व जिसमें डेटा शामिल होगा, अब वहां नहीं है)। लाने के चारों ओर एक सरल कोशिश/पकड़ इसे ठीक किया। – Xerri
- 1. क्या Google App Engine पर DoSing को रोकना संभव है?
- 2. क्या डॉक्सिजन संरक्षित सदस्यों को आउटपुट से रोकना संभव है?
- 3. क्या .NET कचरा संग्रह को रोकना संभव है?
- 4. ककड़ी/कैपिबारा/सेलेनियम में अजाक्स अनुरोधों को रोकना?
- 5. थ्रेड को रोकना/रोकना क्यों बुरा है?
- 6. इनपुट प्रतीक्षा से सीन को रोकना संभव है?
- 7. जावास्क्रिप्ट/jquery में निष्पादन को रोकना संभव है?
- 8. क्या वीम को एक php फ़ाइल की बचत को रोकना संभव है जिसमें पार्स त्रुटि है?
- 9. क्या डेटाग्रिड कॉलम/हेडर को बाईं ओर धक्का देने से ऊर्ध्वाधर स्क्रॉलबार को रोकना संभव है?
- 10. बैकबोन - क्या एक संपत्ति को छोड़कर, एक मॉडल में एक बदलाव घटना को बांधना संभव है?
- 11. क्या यह प्रोग्राम प्रोग्रामिंग को रोकना संभव है जब इसकी खिड़की फोकस हो जाती है?
- 12. क्या अन्य अनुरोधों से 3 जी के माध्यम से किए गए HTTP अनुरोधों को अलग करना संभव है
- 13. सभी जावास्क्रिप्ट निष्पादन को रोकना
- 14. क्या आरएआईआई-स्टाइल क्लास को "गुमनाम" तत्काल होने से रोकना संभव है?
- 15. क्या डी 2 में गैर-पारगमनशील चर के पुन: असाइनमेंट को रोकना संभव है?
- 16. क्या एच 2 टैग के बाद लाइनब्रेक को रोकना संभव है?
- 17. क्या डीबगर ने ब्रेकपॉइंट मारा जब विजुअल स्टूडियो ऑटो फ़ोकस को रोकना संभव है?
- 18. FakeItEasy - क्या एक विधि को रोकना और इसे अपने कार्यान्वयन के साथ बदलना संभव है?
- 19. क्या jqGrid पंक्ति को चुनने और/या हाइलाइट करने से रोकना संभव है?
- 20. इनपुट फ़ाइलों को पढ़ने, सबसे तेज़ तरीका संभव है?
- 21. सबवर्सन - क्या सभी कामों को अक्षम करना और भंडार को केवल पढ़ने के लिए संभव है?
- 22. स्थानीय पॉइंटर्स को रोकना
- 23. एक प्रक्रिया को रोकना?
- 24. एक्सएसएस हमलों को रोकना
- 25. बैकबोन
- 26. बैकबोन
- 27. बैकबोन
- 28. बैकबोन
- 29. बैकबोन
- 30. बैकबोन
मेरे पास एक संबंधित समस्या है लेकिन मेरे पास एक से अधिक संग्रह हैं। तो इससे पहले कि मैं एक अनुरोध रद्द कर दूं, मुझे यह सुनिश्चित करने की ज़रूरत है कि यह एक विशिष्ट संग्रह से जुड़ा हुआ है। मैंने यहां सवाल पूछा है, हो सकता है कि आप पहले ही इस मुद्दे से निपट चुके हैं? http://stackoverflow.com/questions/21919690/association-between-backbone-collection-and-xhr-object-created-when-fetching – wuliwong
अभी तक इसे लागू नहीं किया गया है, लेकिन एक चीज जिसे आप कोशिश कर सकते हैं सभी xhr को स्टोर करना है एक सरणी में अनुरोध। प्रत्येक एक्सएचआर अनुरोध पर या प्रत्येक दृश्य परिवर्तन पर आप उन पूर्णियों को साफ़ करने के लिए सरणी के माध्यम से लूप कर सकते हैं और जिन्हें आप रोकना चाहते हैं उन्हें रोकने के लिए। यह एक पर्याप्त सफाई प्रदान करना चाहिए। – Xerri