2009-12-04 11 views
10

मुझे यह पसंद है, इन दिनों, हमारे पास एक विकल्प है कि हम सर्वर से हमारी वेब सामग्री कैसे प्राप्त करते हैं: हम पुराने शैली के HTTP अनुरोध (अपने स्वयं के यूआरएल के साथ) बना सकते हैं ब्राउज़र में) या हम एक AJAX कॉल कर सकते हैं और फ्लाई पर डीओएम के हिस्सों को प्रतिस्थापित कर सकते हैं।सामग्री प्राप्त करना: AJAX बनाम "नियमित" HTTP कॉल

मेरा प्रश्न यह है: आप कैसे तय करते हैं कि किसी भी विकल्प का उपयोग करने के दौरान उपयोग करने के लिए कौन सी विधि का उपयोग करना है?

"पुराने दिनों" में हमें अपडेट किए गए सामग्री को दिखाना चाहते हैं, तो हमें पूरे पृष्ठ को फिर से भरना होगा (जिसमें भागों को नहीं बदला गया था)। अब जब AJAX परिपक्व हो गया है तो हमें ऐसा करने की आवश्यकता नहीं है; हम कल्पना कर सकते हैं, एक बार "पृष्ठ" प्रस्तुत कर सकते हैं और आवश्यकतानुसार बदलते हिस्सों को अपडेट कर सकते हैं। लेकिन ऐसा करने के क्या परिणाम होंगे? क्या AJAX के माध्यम से आंशिक-पृष्ठ रीलोड बनाम पूर्ण-पृष्ठ रीलोड करने के लिए अंगूठे का अच्छा नियम है?

उत्तर

12

यदि आप चाहते हैं कि लोग अलग-अलग पृष्ठों को बुकमार्क करने में सक्षम हों, तो HTTP अनुरोधों का उपयोग करें।

यदि आप संदर्भ बदल रहे हैं, तो HTTP अनुरोधों का उपयोग करें।

यदि आप बेहतर रखरखाव के लिए विभिन्न पृष्ठों के बीच कार्यक्षमता को विभाजित कर रहे हैं, तो HTTP अनुरोधों का उपयोग करें।

यदि आप अपने पृष्ठ दृश्य को अधिकतम करना चाहते हैं, तो HTTP अनुरोधों का उपयोग करें।

अभी भी HTTP अनुरोधों का उपयोग करने के कई अच्छे कारण हैं - स्टैक ओवरफ़्लो AJAX और HTTP अनुरोधों के बीच उन डिवीजनों का एक अद्भुत उदाहरण है। चित्रा करें कि प्रत्येक फ़ंक्शन HTTP या AJAX क्यों है और मुझे यकीन है कि आप प्रत्येक का उपयोग कब करेंगे इसके कई और कारण प्राप्त करेंगे।

+3

मुझे इस चर्चा से बहुत दिलचस्पी है। हालांकि एक बिंदु मुझे समझ में नहीं आता है: "संदर्भ बदलने" से आपका क्या मतलब है? – balteo

+0

इस मामले में संदर्भ बदलना कुछ ऐसा होगा: मैं अपनी जांच खाता जानकारी पर देख रहा हूं अब मैं बंधक दरों को देखने के लिए संदर्भ बदल रहा हूं। मैंने बैंक साइट नहीं छोड़ी है, लेकिन मेरा कार्य बदल गया है: मैंने संदर्भ बदल दिए हैं। – MikeEL

5

मेरे सरल नियम:

सब कुछ ajax करते हैं, खासकर अगर यह एक आवेदन नहीं सामग्री का सिर्फ पृष्ठों है। जब तक लोग ब्लॉग की तरह सीधे सामग्री से लिंक करना चाहते हैं। फिर नियमित पूर्ण पृष्ठ करना आसान है।

बेशक कई मिश्रित संयोजन हैं, यह एक या दूसरे को पूरी तरह से नहीं होना चाहिए।

3

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

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

यह सब वास्तव में आपके लक्षित दर्शकों पर निर्भर करता है और समग्र अनुभव यह है कि आप अपने पृष्ठ पर जाने की कोशिश कर रहे हैं। AJAX और preloaders चमकदार हैं, और लोग प्यार चमकदार चीजें। यदि आप मानते हैं कि अंतिम उपयोगकर्ता अनुभव आंशिक पृष्ठ लोड जोड़कर सभी तरीकों से उन्हें लागू करेगा।

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