2010-11-06 14 views
5

मेरे पास एएसपीनेट एमवीसी दृश्य है कि jquery AJAX की मदद से एक div अद्यतन करता है। क्या मुझे एक नियंत्रक का उपयोग करना चाहिए जो पार्टियल व्यू या जेसन वापस कर दे? और प्रदर्शन?जावास्क्रिप्ट - जेसन या एचटीएमएल?

+2

संभव डुप्लिकेट JSON का? या यह है?] (Http://stackoverflow.com/questions/1284381/why-is-it-a-bad-practice-to-return-generated-html-instead-of-json-or-is-it) – ChaosPandion

उत्तर

2

यदि आप चाहते हैं कि उपयोगकर्ता विभिन्न विचारों के बीच स्विच करने में सक्षम हो, और यह डेटा केवल पृष्ठ लोड पर शामिल किया जा सकता है, तो केवल ऑनलोड को शामिल करें, फिर जेसन के रूप में छुपाएं/दिखाएं या लोड करें और फिर आवश्यकतानुसार पॉप्युलेट करें।

यदि यह एक बहुत ही सरल अनुरोध है जिसे आवश्यकतानुसार अपडेट करने की आवश्यकता है और आप अपने ऐप में अन्य समान आवश्यकताओं पर योजना नहीं बनाते हैं तो बस HTML वापस करें।

हालांकि यदि आप कोई अनुरोध कर रहे हैं जो डेटा सबमिट करता है या कुछ क्रिया करता है, तो मैं त्रुटि बूलियन, त्रुटि संदेश और सामग्री/डेटा तत्वों के साथ एक सतत जेसन प्रतिक्रिया लौटने का प्रशंसक हूं।

1

यदि आप प्रतिक्रिया को संपीड़ित कर रहे हैं तो HTML वापस लौटें अन्यथा JSON लौटाएं और HTML क्लाइंट पक्ष बनाएं। एक आदर्श दुनिया में आपके सर्वर को हमेशा प्रतिक्रिया को संपीड़ित करना चाहिए लेकिन आपके पास एक खराब कॉन्फ़िगर किया गया सर्वर हो सकता है जो आपके नियंत्रण में नहीं है। हालांकि मेरे उत्तर का मुद्दा यह आसान रखना है क्योंकि सर्वर की तरफ एचटीएमएल और जेएसओएन के बीच अंतर काफी कम है। क्लाइंट पर HTML बनाना भी पुरानी मशीनों वाले उपयोगकर्ताओं के लिए थोड़ा धीमा हो सकता है। (या ब्राउज़रों ... आप ब्राउज़र के बारे में मैं बात कर रहा हूँ पता है ...)

नोट: मेरा जवाब सबसे सामान्य संदर्भ में समझा जाना चाहिए। अपने प्रौद्योगिकी ढेर और लक्ष्य बाजार को देखे बिना यह किसी भी अन्य तरीके से जवाब देने में गलत होगा। याद रखें कि प्रोग्रामिंग में अधिकांश नियम दिशानिर्देशों की तरह अधिक हैं।

+6

या तो दृष्टिकोण * gzip के माध्यम से संपीड़ित/वितरित किया जाना चाहिए ... ताकि यह एक कारक न हो। –

+0

क्यों? इस तरह से सुझाव देने का विशिष्ट कारण क्या है? –

+0

@ निक, @ Th4wn - अपडेट देखें। – ChaosPandion

3

मैं जेएसओएन की तरफ झुकता हूं। इसका कारण यह है कि जेएसओएन आपको विभिन्न डेटा वापस लाने के लिए लचीलापन प्रदान करता है। जैसे

आप वापस 100 परिणाम ला सकता है, और क्या उन परिणामों (कीवर्ड, समूह, आदि) और कितने अधिक परिणाम उपलब्ध हैं, कैसे ताजा परिणाम हैं, पृष्ठन की जानकारी के बारे में जानकारी कर रहे हैं बारे में कुछ मेटाडेटा ...

इसी प्रकार अन्य अन-संबंधित जानकारी वापस आ सकती हैं - स्टेटस संदेश, "नया मेल!" संकेतक इत्यादि

शुद्ध HTML के साथ आप एक कंटेनर की HTML सामग्री को अपडेट करने के अलावा कुछ और करने के लिए और विकल्प सीमित करते हैं।

+0

मैं उस – Stefano

0

यह इस बात पर निर्भर करता है कि आप क्या हासिल करने की कोशिश कर रहे हैं। यदि आप "मोटी" क्लाइंट बना रहे हैं (यानी सर्वर केवल डेटा को संसाधित करता है और ब्राउज़र बाकी को संभालता है), तो सर्वर को वापस w/JSON का जवाब देना चाहिए।

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

1

एचटीएमएल लौटने के लिए शायद अधिक सर्वर-साइड प्रोसेसिंग की आवश्यकता होती है क्योंकि सर्वर को HTML स्वरूपण करना होगा। लौटने वाले JSON को अधिक क्लाइंट-साइड प्रसंस्करण की आवश्यकता होगी क्योंकि क्लाइंट को HTML प्रारूपित करना होगा। इस प्रकार प्रदर्शन इस बात का विषय है कि आप कहां प्रसंस्करण करना चाहते हैं। यदि आपका सर्वर उच्च लोड के अधीन है, तो आप ग्राहकों को कुछ प्रसंस्करण को ऑफ़लोड करना चाहेंगे।

2

मेरे लिए, AJAX करने का सबसे अच्छा तरीका पतला डेटा पैकेट लौटा रहा है, पूर्व-प्रस्तुत HTML नहीं। तो मैं कहूंगा कि JSON विकल्प के साथ जाओ ...

... लेकिन यह सब आपकी आवश्यकताओं के आधार पर निर्भर करता है। प्री-रेंडर एचटीएमएल स्निपेट्स दिखाना बहुत आसान है, इसलिए यदि आपको कुछ तेजी से चाहिए तो आंशिक दृश्य बेहतर विकल्प हो सकता है।

लेकिन इससे पहले सभी पर चर्चा की गई है। तो इस लिंक पर एक नज़र डालें: The AJAX response: XML, HTML, or JSON?। लेखक प्रत्येक के फायदे और नुकसान के साथ, 3 मुख्य AJAX प्रतिक्रिया विकल्पों का एक अच्छा, मंच स्वतंत्र सारांश प्रस्तुत करता है।

11

This ... question ... has ... been ... asked ... से पहले :)

की [क्यों यह बजाय सृजित HTML वापस जाने के लिए एक बुरी बात है
+2

हेहेहे +1 में संदेशों की सूची अपडेट करूंगा ताकि समुदाय को डुप्लिकेट के लिए नजर रखने के लिए याद दिलाया जा सके। – rsenna

+1

+1 के लिए चैट – ChaosPandion

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