TempData का उपयोग करते समय, मेरी समझ यह है कि यह केवल एक ही अनुरोध के लिए आप जो कुछ भी डालते हैं वह रखेगा। तो जब एक रीडायरेक्ट में डेटा को बनाए रखने के लिए TempData का उपयोग करते समय (पोस्ट-अनुरोध-गेट पैटर्न का उपयोग करने के लिए), यह संभव नहीं है कि उपयोगकर्ता से कुछ अन्य अनुरोध रीडायरेक्ट भेजने के जवाब में सर्वर में आ सकता है और उपयोगकर्ता का ब्राउजर रीडायरेक्ट-टू पेज का अनुरोध करता है? किस मामले में अब TempData उपलब्ध नहीं होगा, सही?क्या रीडायरेक्ट में Asp.Net MVC TempData का उपयोग करते समय कोई संभावित "रेस हालत" है?
अब, मैं समझता हूं कि ऐसा कुछ घटित होना बहुत दुर्लभ होगा, लेकिन इस बात को ध्यान में रखते हुए कि उपयोगकर्ता के पास एक और टैब दूसरे टैब में खुल सकता है, और उस पृष्ठ पर होने वाले अजाक्स या समय के कॉलबैक अनुरोध हो सकते हैं, अचानक मेरे लिए असंभव प्रतीत नहीं होता है। क्या इसे आम तौर पर चिंता करने के लिए बहुत दूर माना जाता है, या क्या मैं कुछ गलत समझ रहा हूं?
संपादित करें: परिदृश्य के बारे में अधिक विशिष्ट होने के लिए मैं पूछ रहा था।
- टैब 1 में उपयोगकर्ता को कोई पद प्रपत्र के साथ एक पृष्ठ को ब्राउज़
- टैब 2 साइट है कि एक टाइमर
- पर ajax कॉलबैक करता टैब 1 में के किसी दूसरे पृष्ठ उपयोगकर्ता ब्राउज़रों में, उपयोगकर्ता पदों सर्वर
- जब सर्वर पद प्राप्त करता है रूप है, यह TempData में कुछ डेटा बचाता है और एक रीडायरेक्ट प्रतिक्रिया
- टैब 2 में, समय समाप्त हो गया ajax कॉलबैक होता वापस भेजता है, के लिए एक GET अनुरोध भेजने सर्वर। TempData सत्र
- टैब 1 में से निकाल दिया जाता है, तो ब्राउज़र रीडायरेक्ट और मुद्दों GET अनुरोध
- सर्वर GET अनुरोध संसाधित करता है और TempData के लिए लग रहा है प्राप्त करता है, लेकिन यह
आप सही हैं। यदि दो ब्राउज़र विंडो एक ही सत्र साझा करते हैं, तो वे एक ही TempData साझा करते हैं। आपको सावधान रहना चाहिए कि आपने इस कारण से TempData में क्या रखा है; फ़्लैश स्टेटस संदेश ठीक हैं (गलत ब्राउज़र में दिखाना थोड़ा अजीब है लेकिन हानिकारक नहीं है)। –
प्रश्न में 7-चरणीय परिदृश्य में, यह कोई फर्क नहीं पड़ता कि ब्राउज़र सर्वर से सभी अनुरोधों को क्रमबद्ध करता है या नहीं। वास्तव में, परिदृश्य को पोस्ट-रिटर्निंग-रीडायरेक्ट, AJAX-GET, GET-redirection-location के रूप में क्रमबद्ध किया गया है। इसका मतलब है कि AJAX-GET TempData प्राप्त करेगा। – bzlm
साथ ही, क्या आईआईएस उसी सत्र से सभी अनुरोधों को क्रमबद्ध नहीं करता है जैसे ही आप सत्र राज्य का उपयोग करते हैं? पुराने दिनों में यह निश्चित रूप से सच था। यह इस तथ्य पर ज़ोर देगा कि धारावाहिकता का अनुरोध कोई फर्क नहीं पड़ता। – bzlm