2009-03-12 13 views
5

कई वेब पेज बहुत कम जानकारी बदलने के लिए अपनी सभी सामग्री लोड करते हैं।पृष्ठ सामग्री लोड करने के लिए पृष्ठ अनुरोधों के लिए केवल AJAX का उपयोग क्यों नहीं किया जा रहा है?

अब मैं जानना चाहता हूं कि डेवलपर्स मुख्य पृष्ठ अनुरोधों के लिए केवल AJAX का उपयोग क्यों नहीं करना चाहिए?

अपने स्वयं के वेबपृष्ठ पर, मैं अपने वेबपृष्ठ पर केवल अजाक्स के साथ मुख्य अनुरोध विकसित करना चाहता हूं लेकिन मुझे इस दृष्टिकोण के साथ कोई विशिष्ट विपक्ष नहीं पता है।

क्या किसी के पास कोई विचार है कि किसी को एजेक्स का इतना उपयोग क्यों नहीं करना चाहिए?

उत्तर

1

सबसे बड़ी बात उपयोगकर्ता हैं जिनके पास जावास्क्रिप्ट अक्षम है। आपकी वेबसाइट बस उनके लिए काम नहीं करेगी।

2

मैं आपको एक बहुत अच्छा कारण दूंगा।

यदि आप ब्राउज़र में जावास्क्रिप्ट बंद करते हैं तो यह काम नहीं करेगा।

13

कोई भी जावास्क्रिप्ट, स्क्रीन पाठक और सामग्री के अन्य उपभोक्ता वाले खोज इंजन, क्रॉलर/मकड़ियों, ब्राउज़र इसके साथ बहुत खुश नहीं होंगे।

यदि आप पहले से ही पूर्ण सामग्री के लिए मानक सर्वर साइड नेविगेशन का समर्थन करते हैं तो आप वेबसाइट के शीर्ष पर बहुत सारे अजाक्स व्यवहार प्रदान कर सकते हैं। progressive enhancement (SO) और progressive enhancement (wiki) पर एक नज़र डालें।

+2

आप किसी ऐसी चीज़ से नाखुश कैसे हो सकते हैं जिसे आप पहले स्थान पर भी नहीं देख सकते? :) – Tyson

+0

आप खुश नहीं होंगे क्योंकि आपकी वेबसाइट एसईओ असभ्य होगी। आम तौर पर ऐसी समस्याएं होती हैं जो इन मुद्दों को कम करती हैं (अजाक्स या फ्लैश में समृद्ध वेबसाइटों के लिए) जैसे साइटमैप प्रोटोकॉल, लेकिन सामान्य रूप से आप अपने लिए और सबसे अच्छी चीज के लिए कर सकते हैं, अपनी वेबसाइट के प्रवाह को शुद्ध HTML में डिज़ाइन करना है! – cherouvim

0

पहले से पोस्ट किए गए उत्तरों के अलावा, AJAX का उपयोग करके ब्राउज़र नियंत्रण पर बदसूरत दुष्प्रभाव हो सकते हैं, जैसे स्टॉप बटन काम नहीं कर रहा है।

6

संपूर्ण आधार वास्तव में यह है कि AJAX के साथ आपको उस वेबपृष्ठ का एक छोटा प्रतिशत अपडेट करने के लिए पूरे पृष्ठ को फिर से लोड करने की आवश्यकता नहीं है। यह बैंडविड्थ बचाता है और आमतौर पर पूरे पृष्ठ को पुनः लोड करने से कहीं अधिक तेज़ होता है।

लेकिन यदि आप पूरे पृष्ठ को लोड करने के लिए AJAX का उपयोग कर रहे हैं तो यह वास्तव में प्रतिकूल है। AJAX डेटा के कॉलबैक से निपटने के लिए आपको अनुकूलित दिनचर्या लिखनी होगी। प्रदर्शन में बहुत कम वृद्धि के लिए यह अतिरिक्त काम है।

AJAX का उपयोग करने के लिए सामान्य नियम: यदि आपका अपडेट> आपके पृष्ठ का 50%, बस पुनः लोड करें, और AJAX का उपयोग करें।

+0

चेरौविम द्वारा सूचीबद्ध स्पष्ट कारणों के अलावा, यह एक बड़ा है - * कोई बिंदु नहीं है * – annakata

0

एक बात यह है कि आप एक स्थिर यूआरएल के लिए सामग्री चाहते हैं, आप लोगों को, आपके पृष्ठों से लिंक करने के लिए उन्हें बुकमार्क सक्षम होना चाहते हैं, आदि

यदि सब कुछ ajaxified है, यह मुश्किल हो सकता है और/या थकाऊ।

+0

इस समस्या को हल करने के लिए अच्छी पुस्तकालय हैं: http://code.google.com/p/reallysimplehistory/ –

0

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

इस तरह सामान्य गैर जेएस लिंक पूरे पृष्ठ को लोड करते हैं, और जेएस कॉल केवल नए हिस्सों या पेज को लोड करते हैं। इसका मतलब है कि स्पाइडर इंडेक्सिंग भी फिर से काम करता है।

0

ठीक है, आप हमेशा jquery का उपयोग करके अनजाने में ऑनक्लिक ईवेंट जोड़ सकते हैं और सामान्य यूआरएल हैंडलिंग को रोक सकते हैं।

उदाहरण के लिए:

एचटीएमएल

<a id="ajaxify-this" href="my-working-url">Click me to do AJAXy stuff if you have javascript</a> 

तो जावास्क्रिप्ट

$(document).ready(function() {  
    $("#ajaxify-this").click(function(e) { 
     updateContent(); // do something ajaxy with the page 
     return false; // stop the click from causing navigation 
    }) 
} 
+0

मैंने संघर्ष हल किया बेहतर ....;) $ (document) .ready (function() \t \t { $ removeAttr ("href") ("नव।");। }); अगर js सक्रिय है, फिर jQuery href सामग्री अक्षम और मैं मेरी ajax कॉल का उपयोग कर सकते हैं ...: p –

+0

आप भी e.preventDefault (इस्तेमाल किया जा सकता था); झूठी वापसी; – sabbour

0

मैं अपने खुद के webside के लिए टेम्पलेट इंजन के रूप में केवल जावास्क्रिप्ट और EJS का उपयोग करें। सोफे/सूई के करीब एक कदम।

कोई भी जावास्क्रिप्ट वाले खोज इंजन, क्रॉलर/मकड़ियों, ब्राउज़र, स्क्रीन पाठक इसे नापसंद करते हैं, ठीक है। लेकिन मैं मुख्यधारा का पालन करता हूं;)

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