2010-07-12 8 views
6

मैं सुनता रहता हूं कि सर्वर की तरफ एएसपी .NET AJAX नियंत्रण (जैसे UpdatePanels) वास्तव में AJAX नहीं हैं हालांकि वे ऐसा प्रतीत होते हैं, क्योंकि प्रतिपादन क्लाइंट पक्ष पर पूरी तरह से नहीं है। मैं इसे और स्पष्टता के साथ समझने की कोशिश कर रहा हूं। क्या कोई विस्तार कर सकता है?एमएस अपडेटपैनल्स वास्तव में AJAX नहीं है?

धन्यवाद ...

+0

अच्छा प्रश्न। यह पोस्टबैक करने के लिए पहले प्रस्तुत करने के तरीके के बारे में अधिक हो सकता है ... लेकिन, मैं आधार से पूरी तरह से बंद हो सकता था। –

+2

वे * AJAX हैं, वे बस * भी * फुले हुए हैं और सर्वर पर जीवन चक्र प्रदान करने वाले पूरे पृष्ठ से गुजरते हैं, वे एक त्वरित-ठीक हैं, लेकिन * बहुत * अक्षम हैं। –

उत्तर

12

UpdatePanels काफी AJAX के चक्र के आरंभ में बाहर आया, और वे भारी रहे हैं (वे जावास्क्रिप्ट का 100-300k चारों ओर फेंकना कर सकते हैं)। दृश्यों के पीछे, UpdatePanels पूरे पृष्ठ को एक जावास्क्रिप्ट XMLHttpRequest के माध्यम से सर्वर पर वापस पोस्ट करें। नया पृष्ठ सामान्य पृष्ठ जीवन चक्र के साथ एक पोस्टबैक की तरह उत्पन्न होता है, लेकिन केवल अपडेट पार्टेल के अंदर रहने वाले हिस्सों (साथ ही व्यूस्टेट को अपडेट करने के लिए आवश्यक भागों और अन्य) को क्लाइंट को वापस भेज दिया जाता है। वहां से, मार्कअप को दृश्य स्थिति या पृष्ठ स्थिति के बाधा के बिना डाला जाता है।

अधिक प्रतिस्पर्धी AJAX उपकरण सुपर लाइटवेट कार्यान्वयन की ओर झुकते हैं जो आपको जावास्क्रिप्ट के माध्यम से HTML का एक छोटा हिस्सा भेज या उत्पन्न करने देता है, और मैं कहूंगा कि यह आज प्रमुख दिशा है, खासकर एएसपी.नेट दुनिया के बाहर।

तार में भेजे गए डेटा की कुल मात्रा में अंतर बहुत बड़ा है - नीचे दिए गए लिंक को देखें। कम यातायात परिस्थितियों में यह थोड़ा अंतर नहीं ले सकता है, लेकिन स्टैक ओवरव्लो जैसी साइट के मामले में, यह निश्चित रूप से बैंडविड्थ बिल पर दिखाई देगा।

सब कहा, मैं यह कहना है कि UpdatePanels वास्तव में AJAX नहीं हैं उचित है, क्योंकि वे asynch जावास्क्रिप्ट के माध्यम से चारों ओर जहाज एचटीएमएल कर नहीं लगता कि - यह एक विशाल, शीर्ष पर अक्सर बोझिल ढांचे वहाँ सिर्फ इतना है कि है। अपडेटपैनल्स कभी-कभी खराब रैप प्राप्त करते हैं, लेकिन वे एक शानदार सरल डेवलपर अनुभव प्रदान करते हैं। मैंने अक्सर उन्हें कम यातायात स्थितियों में उपयोगी पाया है।

अद्यतन:Here एक लेख (पुराना लेकिन अभी भी वैध) है जो सर्वर से और उसके द्वारा पेलोड अपडेटपैनल्स जहाज की जांच करता है। यह पृष्ठ विधियों में भी जाता है, जो अद्यतनपैनल्स के लिए एक हल्के, वेब सेवा-आधारित विकल्प है। यह माइक्रोसॉफ्ट AJAX का एक अनदेखा हिस्सा है।

+0

टीएल; डॉ; वे परिभाषा के अनुसार हैं, लेकिन वे जो कुछ करते हैं वह एक पोस्टबैक और कुछ प्रतिपादन को खत्म कर देता है। अच्छा विवरण – mbillard

+0

@GoodEnough - धन्यवाद। :) मैं आपसे सहमत हूं, हालांकि मुझे लगता है कि एक भारी सर्वर राउंडट्रिप को हटाने और प्रतिपादन अधिकांश AJAX उपकरणों का मुख्य बिंदु है। और मैं यह भी कहूंगा कि कुछ मामलों में प्रतिपादन चीज एक बड़ा सौदा है। मेरे पास एक ऐसी स्थिति थी जहां मैं एक विशाल लाइन-ऑफ-बिजनेस .aspx पर फ्रंट एंड ऑप्टिमाइज़ेशन कर रहा था, और जैसा कि यह निकला, परफ बाधा डेटाबेस या यहां तक ​​कि नेटवर्क नहीं था - यह प्रतिपादन कर रहा था! –

+0

@ ब्रायन - हां, प्रतिपादन एक बहुत बड़ा मुद्दा हो सकता है (हमारे आईई उपयोगकर्ताओं के साथ हमें समस्याएं हैं क्योंकि हमारे अनुप्रयोगों में से एक में)।अपडेटपैनल्स तब तक काम करते हैं जब तक कि आप बहुत सारे डेटा और बड़े व्यूस्टेट (डॉन व्यूस्टेट) वाले बड़े पृष्ठों के साथ काम करना शुरू करते हैं। – mbillard

1

http://msdn.microsoft.com/en-us/magazine/cc163480.aspx

हो सकता है कि इस का जवाब देंगे ???

मुझे उम्मीद है। (इसे भी पढ़ना)।

मुझे लगता है कि नियंत्रण एक सर्वर साइड ऑब्जेक्ट है जो एजेक्स को तंत्र के रूप में उपयोग करता है और AJAX को क्लाइंट पक्ष करने के लिए प्रस्तुत किया जाता है। इस अर्थ में यह शुद्ध AJAX नहीं है, बल्कि कई समाधानों का मिश्रण है।

:)

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