2010-07-20 11 views
9

यदि मैं एएसपी.NET एप्लिकेशन विकसित कर रहा हूं, तो कुछ ऐसे मामले हो सकते हैं जहां मुझे एमएस अजाक्स अपडेटपैनल्स के बारे में भूलना चाहिए और jQuery को पसंद करना चाहिए। मेरे पृष्ठ के कुछ हिस्से को अपडेट करने के लिए AJAX?क्या jQuery.Ajax को asp.net UpdatePanel को पसंद करने का कोई कारण है?

आप

उत्तर

1

धन्यवाद आप पूरे ASP.Net पोस्टबैक योजना के साथ आराम कर रहे हैं, इस तरह के नियंत्रण के लिए चिपके से एक लाभ वे Postbacks और इस तरह से पक्ष effecs से आप ढाल कि (ज्यादातर समय) है। लेकिन इस विशिष्ट मामले में यह एक लागत के साथ आता है:

http://geekswithblogs.net/dlussier/archive/2007/09/06/115188.aspx

: यदि आप प्रत्येक AJAX अनुरोध (जो दिखाई राज्य शामिल होंगे), जो एक प्रदर्शन हिट एक सीधे AJAX अनुरोध, सीएफ की तुलना में किया जा सकता है के लिए एक पूर्ण पोस्टबैक है

मुझे यह भी यकीन नहीं है कि यह अच्छी तरह से क्रॉस-साइट अनुरोध (जेएसओएनपी और ऐसे) को संभालता है, इसलिए ये विचार करने के लिए दो चेतावनी हैं।

2

निश्चित, आईएमएचओ आपको मानक एएसपी.Net अद्यतन पैनलों पर jQuery पसंद करना चाहिए। कारण (मुख्य) प्रदर्शन है, जब आप jQuery.ajax का उपयोग करके कुछ डेटा पोस्ट करते हैं तो आप केवल उस पोस्ट को पोस्ट करते हैं जिसे सर्वर को पोस्ट को समझने की आवश्यकता होती है। यह आमतौर पर पाठ के 1-2 पैरामीटर है।

जब आप एक अद्यतन पैनल का उपयोग कर एक ही पोस्ट करते हैं, तो पूरा पृष्ठ सर्वर के दृश्यों के पीछे चलने के लिए जाता है, फिर पूरा पृष्ठ लौटाता है और क्षेत्र प्रदान किया जाता है।

यदि आप jQuery का उपयोग करते हैं, तो आप सर्वर पर एशक्स पेज बना सकते हैं, इस पर एक नियमित वेबफॉर्म का पेज लोड और लाइफसाइक्ल नहीं है और यह भी बहुत हल्का है।

+0

मेरे मन में एक सवाल है ... यदि क्लाइंट ब्राउज़र में जावास्क्रिप्ट अक्षम है तो क्या होगा? –

+0

@ प्रवेश - फिर यह सामान्य रूप से पोस्टबैक करेगा, आप इस तरह के व्यवहार को या तो अपडेटपेनल या jQuery के साथ प्राप्त कर सकते हैं :) –

+0

hmmm okk धन्यवाद एवी। –

10

हां, वास्तव में, आपको लगभग हमेशा अपने स्वयं के (या jQuery की) AJAX कार्यक्षमता का उपयोग करना पसंद करते हैं।

वहाँ एक बहुत एमएस अजाक्स UpdatePanel के साथ जुड़े भूमि के ऊपर की (यह एक पूर्ण पोस्टबैक प्रदर्शन करती है, और फिर अद्यतन करता है तत्व (रों) उस पृष्ठ पर परिवर्तित) है, इसलिए एक AJAX में अच्छा सुविधाओं वेब साइट सक्षम - जिम्मेदारियां, निरंतरता आदि - लगभग पूरी तरह खो गई हैं (आईएमएचओ)। वास्तव में केबल पर जो वास्तव में सबमिट किया गया है, उसके बदले में, और क्लाइंट पर लौटने पर इसका इलाज कैसे किया जाता है, इसका बहुत कम नियंत्रण है।

दूसरी तरफ jQuery अजाक्स के साथ, आपको पूर्ण और तत्काल नियंत्रण मिलता है, आप अपनी इच्छानुसार हल्के वजन (या भारी) अनुरोध के रूप में बना सकते हैं, और इसका सामना कर सकते हैं - एपीआई किसी भी तरह से कठिन नहीं है UpdatePanel की तुलना में उपयोग करें।

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

+1

जबकि मैं पूरी तरह से भावना से सहमत हूं और jQuery को भी पसंद करता हूं, कथन "पृष्ठ में एक से अधिक अपडेटपैनल के लिए असंभव से छोटा है" ** ** पूरी तरह से ** गलत है, यह करना बहुत आसान है, और सामान्य अभ्यास है। –

+0

सेकेंडेड! मैंने उन परियोजनाओं पर काम किया है जहां सामान्य AJAX की बजाय UpdatePanel का उपयोग करने का निर्णय लिया गया था और प्रदर्शन अत्याचारी हो जाता है। एक विशेष मामले में यह डेटाग्रिड व्यू + अपडेट पैनेल का संयोजन था जो बहुत अच्छी तरह से ऐप को अपने घुटनों तक लाया और इसे अधिकतर बेकार प्रदान किया। अपडेटपेनल का उपयोग करने से बचने के लिए हमने ऐप के इस टुकड़े को फिर से डिजाइन करना समाप्त कर दिया। मैं कहूंगा कि AJAX के माध्यम से अपना डेटा पुनर्प्राप्त करने के किसी भी अन्य तरीके से UpdatePanel का उपयोग करने के लिए मूल रूप से कोई अच्छा परिदृश्य नहीं है। – chsh

+0

@ निक - फिर मैंने कोशिश की है कि कई अद्यतन पैनलों के साथ समस्या हल हो गई है। जैसा कि मैंने कहा, यह कुछ साल पहले था। (जैसे ही मैंने एमवीसी ढांचे को देखा, मैं पूरी तरह से झुका हुआ था ...: पी) –

2

मैं कहूंगा कि आपको निश्चित रूप से एएसपी.NET AJAX UpdatePanel पर jQuery AJAX का पक्ष लेना चाहिए। यदि आप ASP.NET AJAX site देखते हैं, तो वास्तव में एएसपी.NET AJAX और/या UpdatePanel का उल्लेख नहीं है ... लेकिन jQuery का बहुत उल्लेख है। वास्तव में, ऐसा लगता है कि माइक्रोसॉफ्ट एपीएस.NET डेवलपर्स का समर्थन कर रहा है jQuery को क्लाइंट-साइड जावास्क्रिप्ट AJAX फ्रेमवर्क के रूप में UpdatePanel और संबंधित एएसपी.NET AJAX नियंत्रणों के रूप में।

वे अभी भी AJAX नियंत्रण टूलकिट के लिंक प्रदान करते हैं, लेकिन वहां इतने सारे jQuery प्लग-इन के साथ, आपको टूलकिट की आवश्यकता क्यों होगी?

अपडेट पैनेल धीमा और थोक है - jQuery AJAX के साथ जाएं।

0

जैसा कि अन्य ने कहा है, एमएस-अजाक्स और अपडेटपैनल्स खराब प्रदर्शन करते हैं - कभी-कभी अनुपयोगी होने के बिंदु पर। जैसा कि अन्य ने इंगित किया है, AJAX कॉलबैक जो छोटे & हल्के वजन वाले होना चाहिए, वे भारी हैं क्योंकि उनमें पूर्ण व्यूस्टेट भी शामिल है।

उन मुद्दों के अलावा, मैं MS-अजाक्स के लिए कुछ अन्य कमियां पाया:

  1. MS-उत्पन्न जावास्क्रिप्ट भूमि के ऊपर का एक बहुत शामिल हैं। उन्होंने अपने जावास्क्रिप्ट को और अधिक टाइपएफ़ बनाने के इरादे से, कई प्रकार की जांच-जांच और चर-जांच में बनाया है, मुझे लगता है। यह ओवरहेड ब्राउजर-साइड प्रसंस्करण को काफी हद तक धीमा कर देता है - खासकर जब जेनरेट किए गए जावास्क्रिप्ट कार्यों को बार-बार/पुनरावर्ती कहा जाता है (जैसा कि कुछ तृतीय-पक्ष नियंत्रणों के मामले में होता है)।
  2. एएसपीएक्स कोड-पीछे बनाए रखने के लिए और अधिक जटिल और कठिन हो जाता है, क्योंकि पृष्ठ की प्रारंभिक लोडिंग के साथ-साथ प्रत्येक एकल AJAX कॉलबैक के लिए एक ही पृष्ठ जीवन चक्र निष्पादित किया जा रहा है। सभी जटिल कोड की तरह, इसे कुशल डेवलपर्स और अच्छी कोड टिप्पणियों से दूर किया जा सकता है - लेकिन फिर भी यह विचार करने में कमी है।

एक अंतिम ध्यान दें: एक लाभ MS-अजाक्स & UpdatePanels को आप दूर 90% जावास्क्रिप्ट-अनभिज्ञ होने के साथ मिलता है और अभी भी उन्हें कोड कर सकते हैं। "पारंपरिक" AJAX में एमएआर-अजाक्स की तुलना में एफएआर अधिक जावास्क्रिप्ट कोडिंग शामिल है।

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