मेरे पास RequJS का उपयोग करके साइट पर एकाधिक पृष्ठ हैं, और अधिकांश पृष्ठों में अद्वितीय कार्यक्षमता है। वे सभी सामान्य मॉड्यूल (jQuery, बैकबोन, और अधिक) साझा करते हैं; उनमें से सभी के पास अपने स्वयं के अद्वितीय मॉड्यूल भी हैं। मैं सोच रहा हूं कि r.js का उपयोग करके इस कोड को अनुकूलित करने का सबसे अच्छा तरीका क्या है। मैं आवश्यकताजेएस और बादाम के दस्तावेज और उदाहरणों के विभिन्न हिस्सों द्वारा सुझाए गए कई विकल्पों को देखता हूं - इसलिए मैं उन संभावनाओं की निम्नलिखित सूची के साथ आया हूं जो मैं देखता हूं, और मैं पूछ रहा हूं कि कौन सी सबसे अधिक अनुशंसा की जाती है (या यदि कोई और बेहतर तरीका है) :अधिक कुशल मल्टीपाज RequJS और बादाम सेटअप
- अनुकूलन पूरी साइट के लिए एक एकल जे एस फ़ाइल, Almond का उपयोग कर, जो एक बार लोड और फिर कैश की गई रहें। इस सबसे सरल दृष्टिकोण का नकारात्मक पक्ष यह है कि मैं प्रत्येक पृष्ठ कोड पर लोड हो रहा हूं जिसे उपयोगकर्ता को उस पृष्ठ की आवश्यकता नहीं है (यानी अन्य पृष्ठों के लिए विशिष्ट मॉड्यूल)। प्रत्येक पृष्ठ के लिए, लोड किया गया जेएस से बड़ा होगा होना चाहिए।
- प्रत्येक पृष्ठ के लिए एक एकल जेएस फ़ाइल अनुकूलित करें, जिसमें सामान्य और पृष्ठ-विशिष्ट मॉड्यूल दोनों शामिल होंगे। इस तरह से मैं प्रत्येक पृष्ठ की फ़ाइल में बादाम को शामिल कर सकता हूं और केवल प्रत्येक पृष्ठ पर एक जेएस फ़ाइल लोड करूंगा - जो पूरी साइट के लिए एक एकल जेएस फ़ाइल से काफी छोटा होगा। हालांकि, मुझे लगता है कि नकारात्मक मॉड्यूल ब्राउज़र में कैश नहीं किया जाएगा, है ना? प्रत्येक पृष्ठ के लिए उपयोगकर्ता जाता है कि उसे बड़ी संख्या में jQuery, बैकबोन, आदि (सामान्य मॉड्यूल) को फिर से डाउनलोड करना होगा, क्योंकि उन पुस्तकालयों में प्रत्येक अद्वितीय सिंगल-पेज जेएस फ़ाइल के बड़े हिस्से होंगे। (यह RequireJS multipage example का दृष्टिकोण प्रतीत होता है, सिवाय इसके कि उदाहरण बादाम का उपयोग नहीं करता है।)
- सामान्य मॉड्यूल के लिए एक जेएस फ़ाइल अनुकूलित करें, और फिर प्रत्येक विशिष्ट पृष्ठ के लिए एक और अनुकूलित करें। इस तरह उपयोगकर्ता सामान्य मॉड्यूल की फ़ाइल को कैश करेगा, और पृष्ठों के बीच ब्राउज़िंग, केवल एक छोटी पेज-विशिष्ट जेएस फ़ाइल लोड करना होगा। इस विकल्प के भीतर मैं इसे समाप्त करने के दो तरीके देखता हूं, RequJS कार्यक्षमता को शामिल करने के लिए: ए।
data-main
सिंटैक्स या सामान्य<script>
टैग का उपयोग करके सभी पृष्ठों पर सामान्य मॉड्यूल से पहले फ़ाइल requ.js लोड करें - बादाम का उपयोग न करें। इसका मतलब है कि प्रत्येक पृष्ठ में तीन जेएस फाइलें होंगी: require.js, सामान्य मॉड्यूल, और पेज-विशिष्ट मॉड्यूल। बी। ऐसा लगता है कि this gist बादाम को प्रत्येक अनुकूलित फ़ाइल में प्लग करने के लिए एक विधि का सुझाव दे रहा है ---- इसलिए मुझे requ.js लोड नहीं करना पड़ेगा, लेकिन इसके बजाय मेरे सामान्य मॉड्यूल और मेरे पेज-विशिष्ट मॉड्यूल दोनों में बादाम शामिल होगा। क्या वह सही है? क्या यह requ.js को आगे लोड करने से अधिक कुशल है?
किसी भी सलाह के लिए धन्यवाद जो आप इसे बाहर ले जाने के सर्वोत्तम तरीके के रूप में पेश कर सकते हैं।
स्पष्टीकरण के लिए धन्यवाद। मैं हाल ही में उस आखिरी बिंदु के बारे में सोच रहा हूं - सीडीएन से पुस्तकालयों को लोड करना, जो आपकी शेष स्क्रिप्ट के साथ संयोजित करने और उन्हें कम करने के विरोध में है। क्या आप मुझे वास्तव में एक अच्छी व्याख्या के साथ जोड़ सकते हैं कि क्यों कुछ लोग सीडीएन का उपयोग करना बेहतर मानते हैं? – davidtheclark
http://stackoverflow.com/questions/2180391/why-should-i-use-googles-cdn-for-jquery http://www.sitepoint.com/7-reasons-to-use-a-cdn/ http://www.johnchow.com/how-to-use-a-content-delivery-network-cdn-to-make-your-blog-load-much-faster/। यदि यह आपकी समस्या हल करता है, तो कृपया इसे स्वीकार करने पर विचार करें। –
मुझे विश्वास है कि मैंने आपका जवाब स्वीकार कर लिया है और कुछ मिनट पहले बक्षीस से सम्मानित किया था। अगर मुझे ऐसा नहीं हुआ तो मुझे बताएं, मुझे लगता है। एक बार फिर धन्यवाद। – davidtheclark