फ़ाइल को संयोजित करने के साथ इस मुद्दे का हिस्सा डाउनलोड करने में समय नहीं है, यह हर पृष्ठ पर संकलित समय बिताया गया है।
यदि आपके पास 20,000 लाइन फ़ाइल है, और आपको केवल उन सभी पंक्तियों की आवश्यकता है जो सबकुछ ऊपर और चलने के लिए हैं (यह मानते हुए कि सब कुछ मॉड्यूलर और असिंक्रोनस के रूप में लिखा गया है, संसाधनों के प्रबंधन के लिए किसी भी पैटर्न का उपयोग करके) , तो आप अपने आप को बचाने के लिए जा रहे हैं कि आधे सेकेंड या उससे अधिक, यदि आप कोर प्रोग्राम की सेवा करते हैं और आवश्यकतानुसार विस्तारित करते हैं (या देरी वाले टाइमर पर, कार्यक्षमता के बड़े हिस्से की सेवा करते हैं जो एक-दूसरे से निकटता से संबंधित होते हैं)।
डाउनलोड करने में व्यतीत कुल समय अधिक है।
उपयोग किए गए HTTP कनेक्शन की कुल संख्या अधिक है।
लेकिन उपयोगकर्ता को दिखाई देने वाला पृष्ठ कम करने के लिए आवश्यक समय कम है।
पृष्ठ पर आधार-कार्यक्षमता जोड़ने के लिए आवश्यक समय कम है।
फिर अतिरिक्त कार्यक्षमता को लोड और प्रारंभिकता के बाद, या उपयोगकर्ता द्वारा अनुरोध किए गए समय-समय पर, और दोनों मामलों में स्ट्रीम किया जा सकता है, जब तक आप जिस कोड में स्ट्रीम कर चुके हैं, वह करने पर केंद्रित है वह एक बात है, और आधा दर्जन अन्य निर्भरताओं के लिए बुला नहीं रही है, अनुरोध के बीच का समय और कार्यक्षमता के अतिरिक्त समय न्यूनतम होने जा रहा है।
RequJS मूल रूप से एक वादा प्रणाली का उपयोग करता है।
यह आपकी निर्भरताओं को संभालने के बाद, लागू होने के लिए कोड को (कॉलबैक के रूप में) लागू करने के लिए निर्भरता घोषित करने की अनुमति देता है।
यदि उन निर्भरताओं की कोई निर्भरता है, तो वे उनकी निर्भरताओं को लोड होने तक प्रारंभ नहीं किया जाएगा।
यदि आप बस इसे लोड करना चाहते हैं और ऑर्डर महत्वपूर्ण नहीं है, तो आपको इसे निर्भरता देने की आवश्यकता नहीं है।
कुल नैतिक है, अगर आपके पास एक प्रणाली है जहां आपकी सभी फाइलें छोटी हैं, तो पेज पर जेएस का कुल वजन बहुत छोटा है, आपको केवल कुछ सौ लाइनों की आवश्यकता होती है जो आप चाहते थे पेज ... ... प्लस, आप जानते हैं कि आपकी सभी निर्भरताएं कहां हैं, आपके पास यह सुनिश्चित करने के लिए सर्वर पर एक सिस्टम है कि वे सही क्रम में हैं, और cetera (साथ ही आपको बहुत अच्छा दस्तावेज मिला है, या आप ' केवल इस कोड को छूने वाला एकमात्र व्यक्ति है, और आप इसके अंदर रहते हैं, दिन-प्रतिदिन) ... ... तो आप जो भी कर रहे हैं उसके साथ कुछ भी गलत नहीं है।
यदि आप संकलित समय आपके द्वारा किए गए HTTP अनुरोधों की संख्या से अधिक हो जाते हैं, तो आपको कोई अंतर दिखाई नहीं दे सकता है। लेकिन कुल अनुप्रयोगों के लिए जो हजारों लाइनों के लंबे (या सैकड़ों) लंबे होते हैं, जहां किसी भी पृष्ठ पर उस कार्यक्षमता का केवल एक अंश आवश्यक होता है, पृष्ठ लोड होने के दौरान अनुमानित समय के मामले में बड़ी बचत हो सकती है, और कब ऐप उपयोगकर्ता द्वारा मूलभूत बातचीत के लिए "तैयार" है।
क्या यह अभी भी सच है? –
@ जितेंद्रेंद्रस - हाँ, यह सब सच है। ब्राउज़र में अब स्क्रिप्ट टैग के लिए 'defer' और 'async' विशेषताएँ हैं (जिन्हें आप [यहां] के बारे में पढ़ सकते हैं (http://stackoverflow.com/questions/10808109/script-tag-async-defer/10808243#10808243)) जो आपको लोडर का उपयोग किये बिना केवल एक सादे स्क्रिप्ट टैग के समय पर कुछ नियंत्रण देता है, लेकिन उपरोक्त सभी के लिए अभी भी मामले हैं जो लोडर का उपयोग करते हैं। – jfriend00