मैं थोड़ी देर के लिए ऑप्टिमाइज़र दस्तावेज़ों के माध्यम से पढ़ रहा हूं, लेकिन ऐसा लगता है कि मैं इसे समझ नहीं सकता। दस्तावेज़ कहते हैं:आवश्यकताएँ जेएस ऑप्टिमाइज़र में नेस्टेड आवश्यकता कॉल शामिल नहीं हैं
अनुकूलक केवल कि सरणियों स्ट्रिंग शाब्दिक की कि शीर्ष स्तर के लिए पारित कर रहे हैं में निर्दिष्ट मॉड्यूल गठबंधन होगा की आवश्यकता होती है और कॉल निर्धारित करें, या आवश्यकता होती है ('नाम') स्ट्रिंग शाब्दिक में कॉल एक सरलीकृत कॉमनजेएस रैपिंग। इसलिए, यह परिवर्तनीय नाम:
ठीक से अब तक बहुत अच्छा है। इसका मूल रूप से r.js शामिल नहीं होगा और न ही नेस्टेड निर्भरताओं को क्रॉल करेगा।
require([ 'es5shim', 'tools' ], function() {
console.log('fictive app entry point');
require([ 'domready!' ], function(doc) {
console.log('domReady, loading GUI modules...');
require([ 'GUI/window', 'GUI/header', 'GUI/content' ]);
});
});
मुझे लगता है कि समस्या यहाँ बहुत स्पष्ट हो जाता है: अब मान हम एक "मुख्य आवेदन" फाइल जो ऐसा दिखाई देता है की सुविधा देता है। r.js (ऑप्टिमाइज़र) उस फ़ाइल को केवल es5shim.js
और tools.js
से लिंक करके बनाता है। क्या ऑप्टिमाइज़र को बताने के लिए कोई अच्छा तरीका/कामकाज है, कि इसे इस उदाहरण में window.js
, header.js
और content.js
फ़ाइलों को भी लिंक करना चाहिए?
बेशक domReady
प्लगइन इस उदाहरण में लोड हो जाएगा और अंत में यह कॉलबैक निष्पादित करेगा, लेकिन संरचना स्वयं ही ऐसा लगता है, ऑप्टिमाइज़र को अपना काम करने से रोकता है।
प्रश्न हैं:
मैं बस में सभी मॉड्यूल की सूची हैं, तो "शीर्ष की आवश्यकता होती है कॉल", r.js भी शामिल होगा + लिंक नेस्टेड से सभी शीर्ष
require
औरdefine
कॉल और मुख्य-एप फ़ाइल में नेस्टेड-नेस्टेड मॉड्यूल?वे उल्लेख कर रहे हैं r.js डॉक्स में के लिए विकल्प शामिल हैं। क्या यह यहां समझ में आता है और यदि हां, तो इसे ठीक से कैसे बुलाया जाए?
बेशक आप आलसी लोड मॉड्यूल के लिए विकल्प बाद में-ऑन खोना नहीं चाहते हैं, लेकिन निर्भरता के इस प्रकार के लिए (DOMContentLoaded के लिए इंतज़ार कर), मुझे आशा है कि वहाँ कि वैकल्पिक हल के लिए एक रास्ता है।
मुझे समझ में नहीं आ रहा है: आप पहली जगह क्यों घोंसले की आवश्यकता है? क्यों न केवल GUI/विंडो es5shim पर निर्भर करते हैं, और es5shim domready पर निर्भर करते हैं! ? – machineghost