मेरे पास एक AJAX क्रिया है जिसमें शामिल डेटा की मात्रा के आधार पर पूरा करने में कुछ मिनट लग सकते हैं। यदि कोई उपयोगकर्ता निराश हो जाता है और नेविगेट हो जाता है, जबकि यह क्रिया अभी भी चल रही है, तो नियंत्रक के साथ क्या होता है? क्या यह वैसे भी पूरा करता है? क्या यह पता है कि अनुरोध को त्याग दिया जाना चाहिए और नियंत्रक वस्तु का निपटान किया जाना चाहिए?जब कोई प्रतिक्रिया प्राप्त करने से पहले उपयोगकर्ता नेविगेट किया जाता है तो एएसपी.नेट एमवीसी नियंत्रक का क्या होता है?
उत्तर
यह सर्वर को अनुरोध रद्द नहीं करेगा क्योंकि नेविगेट करने का कार्य उस अनुरोध के संबंध में किसी भी जानकारी को सर्वर पर वापस नहीं भेजता है। क्लाइंट (ब्राउज़र) हालांकि, इसके लिए सुनना बंद कर देगा। अनुरोध समाप्त होने के बाद, भले ही ग्राहक इसके लिए सुन रहा था या नहीं, नियंत्रक आमतौर पर निपटान करेगा जैसा कि आमतौर पर होगा।
इसके साथ, आप फैंसी प्राप्त कर सकते हैं और क्लाइंट साइड पर पेज परिवर्तन के सुनने के संयोजन का उपयोग कर सकते हैं और सर्वर पर AJAX अनुरोध पर abort
पर कॉल कर सकते हैं।
This SO question discusses अनुरोध को निरस्त करने के लिए कैसे करें। मैं एक वैरिएबल सेट करने की कल्पना कर सकता हूं जब आप पहली बार AJAX अनुरोध शुरू करते हैं और फिर इसे समाप्त होने पर इसे परेशान करते हैं।
चेतावनी - नीचे
var isProcessing = false;
var xhr = $.ajax({
type: "POST",
url: "myUrl",
beforeSend: function(){
isProcessing = true;
}
complete: function(){
isProcessing = false;
}
});
window.onbeforeunload = function(){
if(isProcessing){
xhr.abort();
}
}
ऊपर
छद्म कोड अवधारणा के बहुत मूल विचार है, लेकिन शायद आसपास कुछ चेकों होना चाहिए, अगर XHR वस्तु मौजूद है, शायद भी बाँध/window.onbeforeunload
में निकल .ajax()
आइटम के लिए पहले से भेजें और पूर्ण ऑब्जेक्ट हैंडलर।
आपकी प्रतिक्रिया के लिए धन्यवाद। इस SO प्रश्न का उत्तर यह इंगित करता है कि abort() सर्वर-साइड एक्शन को समाप्त नहीं करेगा। क्या यह सच है? http://stackoverflow.com/questions/4551175/how-to-cancel-abort-jquery-ajax-request –
टॉमी ने अपने उत्तर में पोस्ट किए गए प्रश्न के एआरवी वाल्टर की प्रशंसा "नोट, अगर सर्वर पहले से ही प्राप्त हो चुका है अनुरोध है, यह अनुरोध को संसाधित करना जारी रख सकता है (सर्वर के प्लेटफ़ॉर्म के आधार पर) ब्राउज़र अब प्रतिक्रिया के लिए नहीं सुन रहा है। वेब सर्वर को अपने अनुरोध में प्रोसेस को संसाधित करने के लिए कोई विश्वसनीय तरीका नहीं है प्रगति " – CSharper
@ रेसल्ट्रेली - मुझे सी शार्पर से सहमत होना है कि केवल एक निश्चित उत्तर नहीं है। मैं कहूंगा, यह मानना सुरक्षित है कि सर्वर को अनुरोध मिलने के बाद, यह संभवतः ऐसा करने पर जारी रहेगा जो इसे करने के लिए कहा गया था। मुझे लगता है कि वहां मौजूद सभी जानकारी में अंतर ब्राउज़र, सर्वर और कोड से संबंधित है। इसके साथ ही, कार्य और रद्दीकरण टोकन का उपयोग करके अनुरोध को रद्द करने के तरीके पर कुछ स्पैस जानकारी है, हालांकि, मेरे पास अपेक्षाकृत कम अनुभव है। https://github.com/ermagana/AsyncCancelExample – Tommy
- 1. एएसपी.नेट एमवीसी नियंत्रक से पहले प्रमाणित
- 2. क्या होता है जब प्रक्रिया को फोर्क किया जाता है?
- 3. जब कोई पृष्ठभूमि क्षेत्र क्लिक किया जाता है तो एक WPF पॉपअप बंद क्यों होता है?
- 4. जब कोई प्रकार स्वयं होता है तो क्या करना है?
- 5. एएसपी.नेट एमवीसी - क्या व्यूस्टेट अनुकरण करने का कोई तरीका है?
- 6. जब कोई printf विनिर्देशक ध्वज दोहराया जाता है तो व्यवहार क्या होता है? कार्यों की
- 7. एएसपी.नेट एमवीसी: कहां जाता है?
- 8. जब जावा प्रोग्राम शुरू होता है तो क्या होता है?
- 9. एएसपी.नेट-एमवीसी। यूआरएल से नियंत्रक का नाम कैसे प्राप्त करें?
- 10. जब आप कोई प्रोग्राम चलाते हैं तो क्या होता है?
- 11. जब मूल वर्ग गुंजाइश से बाहर हो जाता है तो धागे का क्या होता है
- 12. जब संकलित कोड शैल से भिन्न होता है तो मूल्यांकन किया जाता है?
- 13. जब इसे रद्द किया जाता है तो कार्य में क्या होता है?
- 14. जब कोई दृश्य हटा दिया जाता है तो बाधाओं के साथ क्या होता है
- 15. आईआईएस/सी # में क्या होता है जब अनुरोध निरस्त किया जाता है
- 16. क्या कोई मुझे एएसपी.नेट एमवीसी समझा सकता है?
- 17. जब उपयोगकर्ता ऐप अपडेट करता है तो लंबित संकेतों का क्या होता है?
- 18. मॉकिंग उपयोगकर्ता। एएसपी.नेट एमवीसी
- 19. माइस्क्ल समेकन: यदि लॉक की गई तालिका का उपयोग किया जाता है तो क्या होता है?
- 20. क्या एएसपी.नेट एमवीसी एमवीसी आर्किटेक्ट पैटर्न का गलत कार्यान्वयन है?
- 21. एंड्रॉइड फ्रैगमेंट्स: लाइफसाइकिल विधि * हमेशा * जब खंड प्रदर्शित होता है तो कहा जाता है?
- 22. जब उपयोगकर्ता नियंत्रक दिखाई देता है तो जावास्क्रिप्ट निष्पादित करें
- 23. जब माउस जारी किया जाता है तो Comboboxes अप्रत्याशित रूप से बंद हो जाता है
- 24. जब मेरा मैक सो जाता है तो मेरे ऐप का क्या होता है?
- 25. जब कोई विशेष संदेश प्राप्त होता है तो हमें प्रेषक अभिनेता कहां से मिलता है?
- 26. जब उपयोगकर्ता को यूआई दिखाया जाता है तो ईवेंट?
- 27. जब कोई उपयोगकर्ता लोड लोड बटन बंद करता है तो कोई जावास्क्रिप्ट ईवेंट होता है?
- 28. जब कोई वेबस्केट कनेक्शन खोला जाता है तो डेटा भेजना संभव होता है
- 29. क्या एएसपी.नेट एमवीसी के लिए कोई ग्राफिकल डिजाइनर है?
- 30. LINQ से SQL का उपयोग तब होता है जब DISTINCT का उपयोग किया जाता है?
मुझे लगता है कि सबसे सटीक उत्तर "शायद" है, और दृष्टिकोण "हां" मानना है। सर्वर-साइड कोड का आह्वान किया गया था और प्रसंस्करण कर रहा है। अनुरोध रद्द करना (* यदि * ब्राउजर कुछ भी सर्वर को सूचित करता है) HTTP सर्वर पर वेब सर्वर को सूचित कर सकता है कि इसे रद्द किया जा सकता है, लेकिन इसका मतलब यह नहीं है कि आपका एप्लिकेशन कोड निष्पादित करना बंद कर रहा है। एप्लिकेशन कोड सामान्य रूप से सामान्य रूप से पूर्ण हो सकता है और वेब सर्वर केवल प्रतिक्रिया को अनदेखा कर देगा। या सर्वर क्लाइंट को जवाब दे सकता है और ग्राहक केवल प्रतिक्रिया को अनदेखा कर देगा। किसी भी तरह से, नियंत्रक सामान्य रूप से निपटाया जाता है। – David
_any_ मामले में दृश्य प्रस्तुत किए जाने के बाद निपटान किया जाता है - आपके परिदृश्य में नियंत्रक अभी भी पूरी तरह से दृश्य प्रस्तुत करेगा, लेकिन प्रस्तुत दृश्य क्लाइंट को वापस नहीं भेजा जाएगा। –
निश्चित रूप से नियंत्रक को यह जानने का कोई तरीका नहीं होगा कि उपयोगकर्ता ने वेबसाइट छोड़ दी है और निष्पादन जारी रखेगी। प्रतिक्रिया शायद ब्राउज़र – Catalin