2008-09-13 8 views
6

एकाधिक AJAX पुस्तकालयों का उपयोग करने के बारे में आप क्या अनुभव साझा कर सकते हैं?एकाधिक AJAX पुस्तकालयों का उपयोग करने के लिए सबसे अच्छी रणनीतियां क्या हैं?

प्रोटोटाइप में कुछ उपयोगी विशेषताएं हैं, कुछ jQuery, याहू लाइब्रेरी आदि में हैं। क्या सभी पुस्तकालयों को शामिल करना और प्रत्येक से आप जो चाहते हैं उसका उपयोग करना संभव है, क्या वे आम तौर पर सभी नाम रिक्त स्थान आदि के साथ अच्छी तरह से खेलते हैं। गति की खातिर पुस्तकालयों के आकार/संख्या को शामिल करने के लिए व्यावहारिक सीमा है या यह नगण्य है? क्या ऐसे जोड़े हैं जो विशेष रूप से अच्छी तरह से काम करते हैं (जैसे प्रोटोटाइप/स्क्रिप्टैकियस) या जोड़े जो नहीं करते हैं?

उत्तर

9

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

अन्य उत्तरों की तरह, ने कहा है कि ज्यादातर संघर्ष नहीं करते हैं।

अधिक जानकारी के लिए याहू! Exceptional Performance साइट देखें।

1

मैं jQuery और जावास्क्रिप्ट फ़ाइल का उपयोग कर रहा हूं, अभी माइक्रोसॉफ्ट AJAX टूल किट पक्ष का संस्करण केवल परियोजना में है।

मुझे लगता है कि मैं jQuery के साथ जा रहा हूं और माइक्रोसॉफ्ट को हटा रहा हूं। मैं jQuery के लिए बहुत नया हूं, लेकिन जितना अधिक मैं इसके बारे में सीखता हूं, उतना ही अधिक मोहक मुझे मिलता है।

2

मैं भी एक jQuery आस्तिक हूँ, इसलिए दूसरों के बारे में ज्ञान की मेरी कमी क्षमा, लेकिन ...

क्या jQuery इतना महान बना देता है, कोई संघर्ष मोड है, तो उदाहरण के लिए, आप क्या करेंगे :

$('#foobar').whatever(); 

कोई संघर्ष मोड के साथ, आप ऐसा करते हैं चाहते हैं:

var jq = jQuery.noConflict(); 
jq('#foobar').whatever(); 

एक कम बात के बारे में चिंता करने के लिए। मुझे लगता है कि प्रोटोटाइप एक समान सुविधा प्रदान करता है, और याहू भी।

लेकिन वैसे भी, मैं jQuery को बहुत ज्यादा वकालत नहीं करना चाहता हूं और लोगों को पागल बनाना चाहता हूं, लेकिन जो भी लाइब्रेरी आप चुनते हैं, मुझे लगता है कि वे सब कुछ आपको जितनी भी आवश्यकता होगी, उतना ही कर सकते हैं। विशेष रूप से के लाभों के बारे में विशेष रूप से तीन अलग-अलग पुस्तकालयों को सीखने के बारे में सोचें।

सभी तीन सक्षम होना चाहिए। वह सबसे अच्छा चुनें जिसे आप सबसे अच्छा पसंद करते हैं और इसे बढ़ाएं। :)

+0

AFAIK प्रोटोटाइप में ऐसी सुविधा नहीं है। jQuery ने "jQuery" ऑब्जेक्ट के अंदर सबकुछ नाम दिया है, और प्रोटोटाइप के दर्जनों कस्टम और अंतर्निहित कक्षाओं में बिखरे हुए कार्य हैं, इसलिए ऐसा करना बहुत कठिन होगा। –

+0

याहू के लिए, अगर मुझे सही याद है तो यह "याहू" या कुछ नामक नामस्थान के अंदर सबकुछ छुपाता है, इसलिए यह वास्तव में डिफ़ॉल्ट रूप से किसी भी चीज़ के साथ संघर्ष नहीं करता है। –

0

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

+1

स्क्रिप्टियस प्रोटोटाइप के लिए एक एडन है। यही कारण है कि वे एक साथ अच्छी तरह से काम करते हैं। – Till

3

वाईयूआई काफी दृढ़ता से नामित है इसलिए अन्य पुस्तकालयों के साथ संघर्ष नहीं करना चाहिए।

जैसा कि बताया गया है कि आप बिना किसी विवाद मोड में jQuery चला सकते हैं।

प्रोटोटाइप कुछ पुस्तकालयों के साथ कुछ समस्याएं अच्छी तरह से खेल रही हैं क्योंकि यह (या इसका उपयोग किया जाता है) Array जैसे मूल ऑब्जेक्ट्स को संशोधित करता है। Protosafe उन मुद्दों को हल करने का प्रयास करता है।

Script.aculo.us बस एक विजेट लाइब्रेरी है जो प्रोटोटाइप के शीर्ष पर बैठता है, इसलिए उन दोनों को स्पष्ट रूप से अच्छी तरह से खेलना चाहिए।

यह सब मतलब है कि आप उपयोग YUI, अपने आवेदन में jQuery, प्रोटोटाइप & Script.aculo.us, लेकिन आप पा सकते हैं सकता है कि एक भी पुस्तकालय का उपयोग कर इसे बहुत आसान बातें बनाए रखने के लिए बनाता है।

4

आप Google AJAX Libraries API का उपयोग कर सकते हैं। यह एक आम वितरण नेटवर्क और jQuery, प्रोटोटाइप, script.aculo.us, MooTools के लिए एक लोड हो रहा है वास्तुकला प्रदान करता है और dojo

1

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

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

उदाहरण के लिए, JQuery बॉक्स से बाहर क्रॉस-डोमेन JSONP कॉल का समर्थन करता है और JQueryUI में एक अच्छी विजेट लाइब्रेरी है, प्रोटोटाइप नहीं करता है।

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { }); 

प्रोटोटाइप वास्तव में अच्छा OO समर्थन हासिल है और यह डोम पार करने के लिए आसान है, लेकिन क्रॉस-डोमेन विजेट और मैशप बनाने के लिए आवश्यक कार्यक्षमता के कुछ का अभाव है।

var Foo = Class.create({ 
    initialize: function(name) { 
    this.name = name; 
    } 
}); 

var Bar = Class.create(Foo, { 
    initialize: function($super, name) { 
    $super(name); 
    } 
}); 

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

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

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