2012-07-05 16 views
11

तो मैं एक कार्यक्षमता के बारे में सोच रहा हूं जहां उपयोगकर्ता एक लिंक चिपकाता है और सर्वर-साइड कोड प्रदान किए गए लिंक को क्रॉल करता है और उस लिंक की सामग्री के साथ प्रतिक्रिया देता है (जैसे पृष्ठ शीर्षक, विवरण, थंबनेल, आदि)।आईआईएस/सी # में क्या होता है जब अनुरोध निरस्त किया जाता है

उपयोगकर्ता इस बीच लिंक को बदल सकता है, और ऐसा करने में, AJAX-अनुरोध क्लाइंट-साइड को निरस्त किया जाना चाहिए।

मुझे आश्चर्य है कि आईआईएस सर्वर में वास्तव में क्या होता है और विशेष रूप से मेरे सी # कोड में क्या होता है।

  • क्या प्रतिक्रिया धागा समाप्त हो गया है?
  • क्या प्रतिक्रिया ऑब्जेक्ट अब शून्य, या Response.Write फेंक अपवाद लौटाता है?
  • क्या प्रतिक्रिया थ्रेड में एक अपवाद फेंक दिया गया है, जहां यह है? (वह भी समझ में नहीं आता है, लेकिन जो कुछ भी)

उत्तर

4

यदि सर्वर कोड Response.IsClientConnected की स्थिति की जांच करता है, तो यह कार्य को रोक सकता है और जब ग्राहक अनुरोध का अनुरोध करता है तो खाली प्रतिक्रिया उत्पन्न करता है, अन्यथा यह सामान्य रूप से अनुरोध को पूरा करेगा।

अनुरोध हैंडलिंग स्वचालित रूप से निरस्त नहीं किया जाएगा क्योंकि इसके लिए कोई भी इंतजार नहीं कर रहा है। सर्वर कोड को सक्रिय रूप से अनुरोध की स्थिति की जांच करनी है।

2

आपका वेब सर्वर यह नहीं जानता कि ग्राहक ने अनुरोध रद्द कर दिया है। अनुरोध अभी भी पूरा हो जाएगा और एक प्रतिक्रिया वापस भेजा जाएगा। आपके द्वारा लिखे गए क्लाइंट-साइड स्क्रिप्ट को आपके पृष्ठ की वर्तमान स्थिति को संभालने में सक्षम होना आवश्यक होगा।

आप सुनिश्चित रूप से प्रतिक्रिया के बारे में परवाह नहीं है कर रहे हैं, मैं अनुरोध क्लाइंट साइड निरस्त की सिफारिश करेंगे:

xhr.abort() 
+1

तो मेरा वेब सर्वर का कोड पूरा होने के लिए निष्पादित किया गया है? अनुरोध रद्द करने में क्या बात होगी? – bevacqua

+1

तो अजाक्स अनुरोध के लिए आमतौर पर दो चरण (सरलीकृत) होते हैं। 1. अनुरोध को दूर करें। 2. प्रतिक्रिया के साथ कुछ करें (सफलता या विफलता कॉलबैक)। अगर आप अनुरोध निरस्त करते हैं, तो आपके कॉलबैक विधियों को प्रतिक्रिया को संभालना नहीं होगा। –

0

आप कनेक्शन क्लाइंट साइड बंद करते हैं इससे पहले कि प्रतिक्रिया बताते हुए एक त्रुटि लिखा है जितना ज्यादा फेंक दिया जाता है। जब आप सर्वर से वापस आते हैं तो आप प्रतिक्रिया को संभालने का विकल्प चुन सकते हैं।

0

एक बार सर्वर पर अनुरोध पोस्ट करने के बाद आईआईएस सर्वर साइड कोड निष्पादित करना शुरू कर देगा। अब सर्वर यह तय कर सकता है कि कोड को निष्पादित करने की आवश्यकता है या नहीं।

पूरे पृष्ठ चक्र में आप अनुरोध की जांच कर सकते हैं। क्लाइंट को गुफा द्वारा उल्लिखित कॉन्फ़िगर किया गया है और निष्पादन को समाप्त कर दिया गया है।

लेकिन हाँ यह पूरी तरह से आपके परिदृश्य पर निर्भर करता है।

उम्मीद है कि यह मदद करता है।

संबंधित मुद्दे

 संबंधित मुद्दे