2013-04-23 6 views
7

मैं एक बहुत ही बुनियादी जावास्क्रिप्ट लाइब्रेरी लिख रहा हूं जो jQuery के $ .ajax() फ़ंक्शन का उपयोग करता है।जावास्क्रिप्ट लाइब्रेरी को पैकेज करने का सबसे अच्छा तरीका जिसके लिए jQuery की आवश्यकता है?

मुझे इस निर्भरता को कैसे प्रबंधित करना चाहिए? क्या मुझे अपनी लाइब्रेरी के उपयोगकर्ताओं को खुद को jQuery शामिल करने के लिए निर्देश देना चाहिए? क्या मुझे पुस्तकालय के भीतर jQuery लोड करने के लिए RequJS या स्क्रिप्ट टैग सम्मिलन जैसे कुछ उपयोग करना चाहिए? यदि उत्तरार्द्ध बेहतर होगा, तो अगर मैं पहले से ही jQuery का उपयोग कर रहा हूं तो संघर्ष के बिना मैं इसे कैसे कर सकता हूं?

+1

मुझे आपकी लाइब्रेरी का उपयोग करके किसी को भी jQuery को शामिल करने की आवश्यकता होगी। यह काफी आम है और यह उजागर करेगा कि उन्हें किसी भी असंगतताओं को अपने कोड में विचार करने की आवश्यकता है। –

+2

मैं सुझाव दूंगा कि आपकी लाइब्रेरी में अपवाद फेंक दिया गया है यदि jQuery शामिल नहीं है और एक विधि का उपयोग किया जाता है जो jQuery को रिक्त करता है। इसके साथ jQuery को बंडल करना स्वचालित रूप से परिस्थितियों के लिए बहुत खराब सिरदर्द का कारण बन सकता है जहां jQuery पहले से ही शामिल है, इसे स्वयं शामिल करने के लिए आवश्यक है। –

+5

यदि आपकी सभी लाइब्रेरी की ज़रूरतें '$ .ajax' है, तो बस अपनी खुद की XMLHttpRequests करें। मुझे खेद है, लेकिन एक्सएचआर के लिए सिर्फ jQuery की आवश्यकता होगी। –

उत्तर

2

मुझे लगता है कि अगर आप jQuery के अलावा अन्य निर्भरता रखते हैं तो यह थोड़े निर्भर करता है।

यदि jQuery आपकी एकमात्र निर्भरता है, और आपकी लाइब्रेरी को वास्तव में इसकी मॉड्यूल निर्भरता प्रणाली की आवश्यकता नहीं है, तो मैं RequJS की अनुशंसा नहीं करता। बस अपनी लाइब्रेरी में jQuery के अस्तित्व की जांच करें, और अन्यथा एक त्रुटि फेंक दें।

यदि आप हालांकि एक लचीली और रखरखाव योग्य बनाने की तलाश में हैं, तो मैं कुछ मॉड्यूल लोडर (जैसे RequJS) का उपयोग करने की सिफारिश करता हूं। यह भी आप एक build system उपयोग करने का लाभ आप गठबंधन और अपने पुस्तकालय

0

मैं आपको सलाह देता हूं कि उपयोगकर्ताओं को पहले jquery शामिल करने की सलाह दी जाए। यदि आप मुझे कोई उदाहरण चुनने देते हैं, तो आप देखेंगे कि यह वास्तव में उपयोग किया जाने वाला दृष्टिकोण है (उदाहरण के लिए नेट फ्रेमवर्क)

1

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

मैंने JS12 लाने के लिए अपना स्वयं का फ़ंक्शन लिखने के लिए this Stack Overflow answer का उपयोग किया। मुझे डेटा को समकालिक रूप से लाने की आवश्यकता थी, इसलिए मैंने this other article में उल्लिखित युक्तियों के साथ फ़ंक्शन को समायोजित किया।

अंत में, मेरा कार्य इस तरह दिखता था। मुझे उम्मीद है कि यह किसी और के साथ आने में मदद करता है।

var fetchJSON = function(path, callback) { 
    var httpRequest = new XMLHttpRequest(); 
    httpRequest.open('GET', path, false); 
    httpRequest.send(); 
    if (httpRequest.readyState === 4) { 
    if (httpRequest.status === 200) { 
     var data = JSON.parse(httpRequest.responseText); 
     if (callback) callback(data); 
    } 
    } 
} 
+0

ध्यान रखें कि यह पुराने आईई में काम नहीं करेगा यदि आपको इसकी भी आवश्यकता है। – blockhead

+0

प्रतिक्रिया के लिए धन्यवाद, @blockhead। क्या हिस्सा संगतता तोड़ता है? JSON.parse कॉल? –

+0

बस देखा कि मेरे अंतिम प्रश्न का उत्तर [उत्तर] में दिया गया है (http://stackoverflow.com/questions/14388452/how-do-i-load-a-json-object-from-a-file-with-ajax/14388512 # 14388512) मैं ऊपर संदर्भित करता हूं। –

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

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