सबसे पहले, कुछ बातें:
जावास्क्रिप्ट को देखने का दूसरा तरीका 1 मिलियन और 1 चीजें हैं जो आप एक निर्माण के रूप में फ़ंक्शन के साथ कर सकते हैं। यह सब वहाँ है यदि आप इसे खोजते हैं। यह सिर्फ एक समारोह से दूर नहीं है।
यह jQuery प्लग-इन संलेखन बात भयानक है। मुझे नहीं पता कि वे इसकी वकालत क्यों कर रहे हैं। $ एक्सटेंशन सामान्य-उपयोग वाले सामान होने चाहिए जो $ पहले से ही बहुत अच्छी तरह से कवर किए गए हैं जो बिल्ड-मी-ए-पूर्ण-विजेट विधियों में शामिल नहीं हैं। यह एक DOM-API नॉर्मलाइज़ेशन टूल है। इसका उपयोग आपकी अपनी वस्तुओं के अंदर सबसे अच्छा दफन है। मैं इसे पूर्ण यूआई पुस्तकालय भंडार के रूप में उपयोग करने की अपील नहीं देखता हूं।
क्लाइंट साइड वेब पर पैकेज व्यर्थ हैं
व्यक्तिगत रूप से क्लाइंट-साइड वेब पर पैकेज के बारे में मुझे जो पसंद नहीं है, वह यह है कि हम मूल रूप से दिखावा कर रहे हैं कि हम कुछ ऐसा कर रहे हैं जो हम वास्तव में नहीं कर रहे हैं। एक पोस्ट। NET वेबफॉर्म और gobs-of-horrifying-stuff-that-never-panned-out-from-our-Java-दोस्तों की दुनिया में, मैं बल्कि HTML से जुड़े संसाधनों के साथ हंक के बारे में सोचना चाहूंगा कि यह वास्तव में क्या है। और यह कुछ और है का नाटक करके सीखने-नई-चीजों-प्रतिरोधी ओएस ऐप डेवलपर्स को खुश करने की कोशिश न करें। जेएस में क्लाइंट-साइड वेब पर, अज़ैक्स के साथ भयानक कुछ करने के लिए "आयातित" कुछ भी नहीं मिलता है जो ब्राउज़र-कैशिंग की अज्ञानता में संचालित होता है, जो हां, कई लोगों ने करने की कोशिश की है। ब्राउज़र के लिए यह सब मायने रखता है कि इसे या तो लोड किया गया था और व्याख्या की गई थी या यह नहीं था। हमारे पास "सिर्फ मामले में" उपयोग के लिए उपलब्ध क्लाइंट पर अधिक कोड नहीं है अच्छे कारणों के लिए। # 1 जा रहा है कि मैंने सिर्फ वेब ऐप्स के लिए प्लग-इन और ब्राउज़र प्लग-इन निर्भरता का वर्णन किया है क्योंकि एक घटना ने आमतौर पर बहुत अच्छा काम नहीं किया है। हम अब वेब चाहते हैं। इस सप्ताह तीसरी बार एडोब या सन को अपडेट करने के बाद नहीं।
भाषा की संरचना के लिए इसकी क्या आवश्यकता है
जेएस ऑब्जेक्ट अत्यधिक परिवर्तनशील हैं। हम किसी भी हद तक नामस्थान के वृक्ष लगा सकते हैं जो हमें ऐसा करने के लिए उपयोगी लगता है और ऐसा करना बहुत आसान है। लेकिन हां, किसी भी चीज को दोबारा इस्तेमाल करने लायक बनाने के लिए आपको ग्लोबल स्पेस में किसी भी लाइब्रेरी की जड़ से चिपके रहना होगा। सभी निर्भरताएँ वैसे भी एक ही समय में जुड़ी हुई हैं और भरी हुई हैं, इसलिए कुछ और करने का क्या मतलब है? वैश्विक नाम स्थान से बचने की बात यह नहीं है कि कुछ भी बुरा है। यह बहुत अधिक सामान है कि वहाँ बुरा है क्योंकि आप नाम स्थान टकराव या गलती से मुख्य भाषा सुविधाओं को अधिलेखित करने का जोखिम चलाते हैं।
सिर्फ इसलिए कि यह लोकप्रिय है इसका मतलब यह नहीं है कि हम इसे सही कर रहे हैं
अब जब आप यह सब क्लाइंट-साइड वेब ऐप पर देखते हैं:
(function(){
//lots of functions defined and fired and statement code here
})()
समस्या यह नहीं है कि हमारे पास किसी ऐप को बनाने के लिए उपकरणों की कमी है, समस्या यह है कि लोग संरचना का मूल्यांकन नहीं कर रहे हैं। एक डिजाइन एजेंसी पर 2-3 पृष्ठ एक-तरफ़ा अस्थायी फेंकने वाली साइटों के लिए, मुझे वास्तव में इससे कोई समस्या नहीं है। जहां यह बदसूरत हो जाता है, जब आपको कुछ बनाए रखने योग्य और सुपाठ्य और संशोधित करने में आसान होता है।
लेकिन जब आप उस जगह पर पहुंच जाते हैं, जहां बस फिर से उपयोग करने योग्य सभी वस्तुओं और कारखानों को लागू करने का समय होता है और शायद एक या दो नए अस्थायी संस्करण उस प्रक्रिया में रेंग सकते हैं, तो यह एक सुविधा है।
लेकिन पैकेज / मॉड्यूल के साथ जेएस के कार्यान्वयन हैं
ध्यान रखें कि Node.js में, जहां इस तरह की चीजें बहुत अधिक मायने रखती हैं, उनके पास मॉड्यूल हैं। जेएस, यह मानते हुए कि हम uber-config-hell से बच सकते हैं जो अन्य भाषाओं को ग्रस्त करता है, समीकरण में केवल एक चीज है और प्रत्येक निष्पादित फ़ाइल का अपना पृथक दायरा है। लेकिन एक वेब पेज पर, js-file को लिंक करना स्वयं आयात स्टेटमेंट है। मक्खी पर अधिक आयात करना केवल समय और संसाधनों की बर्बादी है क्योंकि संसाधनों को प्राप्त करने के लिए बस फाइलों में लिंक जोड़ने की तुलना में बहुत अधिक प्रयास की आवश्यकता होती है क्योंकि आपको उनकी आवश्यकता होती है यह जानते हुए कि उन्हें एक ब्राउज़र में कैश किया जाएगा यदि किसी अन्य पृष्ठ को फिर से उनकी आवश्यकता है। इसलिए jQuery या अधिक पारंपरिक वस्तुओं जैसे एडेप्टर ऑब्जेक्ट फैक्ट्री बनाने के अलावा कुछ भी करके वैश्विक स्थान को विभाजित करने की कोशिश कर रहा है जो कि किसी दिए गए डोमेन में कार्यों के एक बड़े उपसमूह को कवर करता है, जबकि वैश्विक स्तर पर एक स्थान पर कब्जा है। वहाँ'http://wiki.ecmascript.org/doku.php?id=harmony:modules
तो नहीं, वैश्विक नाम स्थान प्रदूषण से बचने के लिए उपयोग किए जाने वाले ऑटो-इनवोकरों में कुछ भी गलत नहीं है जब ऐसी चीजों का उपयोग करने का एक अच्छा कारण है (अधिक बार नहीं होने की तुलना में)। और हमारे पास हमारी वस्तुओं में लगातार निजी-समतुल्य गुण हैं (बस कंस्ट्रक्टर में एक संस्करण को परिभाषित करें और इसे संपत्ति के रूप में उजागर न करें)।
तथ्य यह है कि हम ऐसा कर सकते हैं, हालांकि, कमाल है। भारी उपयोग एक संकेत है कि जेएस डेवलपर्स अभी भी शायद परिपक्व हो रहे हैं, लेकिन यह किसी के लिए भाषा में एक अंतराल छेद नहीं है जो क्लाइंट-साइड वेब में एक प्रतिमान को मजबूर करने की कोशिश नहीं कर रहा है जो कि यहां समझ में नहीं आता है।