स्पष्ट करने के लिए संपादित:RequJS के साथ jQuery लोड हो रहा है - कौन सा बेहतर है, स्थानीय संस्करण या सीडीएन एक?
प्रदर्शन (हालांकि वह अभी भी एक जंगली शब्द है, मुझे पता है) है, जो बेहतर है के संदर्भ में - एक स्थानीय संस्करण, या jQuery के एक CDN संस्करण, RequireJS से अधिक लोड हो रहा है?
निर्माण में शिम config साथ CDN लोड हो रहा है मिश्रण मत करो:
रिकॉर्ड के लिए, RequireJS online doc हालांकि मैं वास्तव में यकीन नहीं है कि इसका क्या मतलब के बारे में 100%, कुछ मार्ग कि CDN का उपयोग कर हतोत्साहित करने के लिए लगता है शामिल हैं। उदाहरण परिदृश्य: आप सीडीएन से jQuery लोड करते हैं लेकिन कुछ लोड करने के लिए शिम कॉन्फ़िगरेशन का उपयोग बैकबोन के स्टॉक संस्करण की तरह है जो jQuery पर निर्भर करता है। जब आप बिल्ड करते हैं, तो निर्मित फ़ाइल में jQuery को इनलाइन करना सुनिश्चित करें और सीडीएन से लोड न करें। अन्यथा, बैकबोन को निर्मित फ़ाइल में रेखांकित किया जाएगा और यह सीडीएन-लोड किए गए jQuery लोड होने से पहले निष्पादित होगा। यह है क्योंकि shim config केवल निर्भरताओं को लोड होने तक फ़ाइलों को लोड करने में देरी करता है, लेकिन परिभाषित करने के लिए कोई ऑटो-रैपिंग नहीं करता है। निर्माण के बाद, निर्भरता पहले से ही रेखांकित हैं, शिम कॉन्फ़िगरेशन बाद में गैर-परिभाषित() 'डी कोड के निष्पादन में देरी नहीं कर सकता है। परिभाषित करें() 'डी मॉड्यूल बिल्ड के बाद सीडीएन लोड कोड के साथ काम करते हैं क्योंकि वे उचित रूप से फ़ैक्टरी फ़ंक्शन को परिभाषित करने में अपने स्रोत को लपेटते हैं जो निर्भरता लोड होने तक निष्पादित नहीं होगा। तो सबक: शिम कॉन्फ़िगरेशन गैर मॉड्यूलर कोड, विरासत कोड के लिए एक स्टॉप-गैप उपाय है। परिभाषित() 'डी मॉड्यूल बेहतर हैं।
Theoratically, एक CDN jQuery फ़ाइल का उपयोग कर 1 अधिक HTTP अनुरोध में परिणाम होगा (r.js का उपयोग अन्य जे एस फ़ाइलें के साथ विलय नहीं किया जा सकता है), लेकिन संभावित लाभ यह है कि अपने दर्शकों को पहले से ही CDN कैश्ड बना सकती थीं वे अन्य साइटों से संस्करण का दौरा किया है।
हालांकि, अगर मैं सही से जानकारी googled यह मिल गया है, तो आप अभी भी एक स्थानीय पेशकश करने के लिए jQuery r.js को कॉपी, जिसके परिणामस्वरूप न्यूनतम किया गया जे एस फ़ाइल के रूप में अभी भी jQuery की प्रतिलिपि करने की आवश्यकता होगी की जरूरत है निर्भरता की स्थिरता सुनिश्चित करने के लिए मॉड्यूल। इसके परिणामस्वरूप स्थानीय और सीडीएन दोनों में jQuery लोड हो जाएगा। (आशा है कि मुझे यह हिस्सा सही मिला?)
तो, किस तरह से बेहतर है?
क्या आप इस बात पर विचार कर रहे हैं कि यदि वह स्थानीय प्रतिलिपि लोड करता है, तो इसे एक सिग्नल जेएस फ़ाइल में समेकित किया जा रहा है? तो सीडीएन संस्करण लोड करके आप किसी अन्य डोमेन के अतिरिक्त अनुरोध के ओवरहेड जोड़ रहे हैं ... – JasonStoltz