2011-06-30 14 views
6

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

मैंने यह post देखा जो इसे करने के कुछ तरीके बताता है। किसी ने पोस्ट में मेमोरी रिसाव के बारे में बताया जो चिंताजनक है।

अंत में, JQuery पुस्तकालयों को व्यवस्थित करने का सबसे अच्छा तरीका क्या है?

धन्यवाद,

+1

आपको नेमस्पेस की आवश्यकता नहीं है, बस अपने '<सम्मिलित पसंदीदा मॉड्यूल लोडर>' – Raynos

+0

मॉड्यूल लोडर के साथ मॉड्यूल हैं? – Amir

+0

['requJS'] (http://requirejs.org/) एक मॉड्यूल लोड करने के लिए 'आवश्यकता' कीवर्ड परिभाषित करता है और एक को परिभाषित करने के लिए 'परिभाषित' कीवर्ड परिभाषित करता है। आप _zero_ वैश्विक दायरे का उपयोग करते हैं। अन्य मॉड्यूल लोडर भी हैं, उन्हें स्वयं ढूंढें;) – Raynos

उत्तर

20

नोट्स: क्योंकि आप अन्य लिपियों के साथ विरोध के नाम होने का कम मौका है

  • नेमस्पेसिंग एक अच्छा अभ्यास है। इस तरह, केवल आपका नाम-स्थान अद्वितीय होना चाहिए, लेकिन एकाधिक नाम-रिक्त स्थानों में उनके समान कार्य हो सकते हैं।
  • jQuery नामस्थान का उपयोग करता है, और आपको प्लग-इन की आवश्यकता नहीं है। jQuery ऑब्जेक्ट स्वयं नाम-स्थान है। । । JQuery ऑब्जेक्ट में jQuery के अंदर कोई भी फ़ंक्शन 'name-spaced' है। यह किसी भी जावास्क्रिप्ट ऑब्जेक्ट के लिए सच है।

आमिर की इस टिप्पणी के जवाब में:

YUI YUI वस्तु जहां जोड़ा चर भी एक वस्तु है करने के लिए एक चर जोड़कर नेमस्पेसिंग प्राप्त होता है। उनका नेमस्पेस फ़ंक्शन बस आपके लिए बनाता है।

var lib = { 
    util:{}, 
    widget:{}, 
    tool:{} 
}; 

//creates a function named reset in the lib.util namespace 
lib.util.reset = function() {}; 

//creates a function named reset in the lib.widget namespace 
lib.widget.reset = function() {}; 

jQuery में, आप इसे jQuery.fn (या $.fn में जोड़ने के लिए अगर आप jQuery() नाम स्थान के लिए $ का उपयोग

+0

आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद लेवी। क्या आप मुझे दूसरे बिंदु की व्याख्या कर सकते हैं। jQuery में यूयूआई (याहू) लाइब्रेरी के रूप में नेमस्पेसिंग नहीं है। नामस्थान/ – Amir

+0

@Amir के बिना jQuery लाइब्रेरी को व्यवस्थित करने के लिए, मेरे उत्तर को अपडेट किया गया। –

+0

मैं समझता हूं कि आप $ .fn का उपयोग कर सकते हैं लेकिन jQuery दस्तावेज़ का उल्लेख है: "प्लगइन प्रति एक से अधिक नामस्थान के साथ jQuery.fn ऑब्जेक्ट को अव्यवस्थित न करें।" यही कारण है कि मैं पूछ रहा था कि सबसे अच्छा तरीका क्या है jQuery में पुस्तकालय व्यवस्थित करें? – Amir

3

पुन:। JQuery पुस्तकालयों को व्यवस्थित करने का सर्वोत्तम उपाय है, तो आप प्लगइन्स लेखन पढ़कर शुरू कर देना चाहिए jquery.com पर लेख:

http://docs.jquery.com/Plugins/Authoring

0

require.js एक बेहतर अभ्यास क्योंकि यह विंडो ऑब्जेक्ट अनावश्यक पर वस्तुओं को जोड़ने के लिए आप की आवश्यकता नहीं है भी है यह। इसका मतलब यह नहीं है कि आपको पिछले जावास्क्रिप्ट फ़ाइलों के लोडिंग ऑर्डर के बारे में चिंता करने की ज़रूरत है।

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