2015-01-29 12 views
17

मैं एक बड़ी अंगूठी परियोजना पर काम कर रहा हूं और जाहिर है कि हमें अपनी स्क्रिप्ट को आलसी लोड करने का एक तरीका चाहिए।Angularjs: ocLazyLoad बनाम Requjs

मैंने पहले requ.js के साथ काम किया है और यह काफी अच्छा है, लेकिन समस्या यह है कि जब हम अपनी फाइलों को संयोजित और छोटा कर देते हैं, तो हमें 1.5 एम जेएस फ़ाइल मिलती है।

तो मुझे अभी OcLazyload का सामना करना पड़ा और यह आशाजनक लग रहा है लेकिन मैंने वेब पर कई उदाहरण देखे हैं जो दोनों की आवश्यकता है और ocLazyLoad का उपयोग करते हैं, मैं थोड़ा उलझन में हूं कि आप दोनों का उपयोग क्यों करना चाहते हैं। क्या वे दोनों एक ही काम नहीं कर रहे हैं?

+1

ध्यान दें कि RequireJS का उपयोग कर आप, मांग पर कुछ फ़ाइलों को लोड कर सकते हैं यानी सिर्फ तुम जब वास्तव में उन्हें चाहिए (उदाहरण के लिए निर्देश या पसंद में)। तो अपने "छोटा" बंडल को केवल उस चीज़ के साथ रखें जिसे शुरुआत में लोड किया जाना चाहिए। – floribon

+0

@floribon - लेकिन OcLazyLoading वही करता है और यह यूई-राउटर के साथ भी एकीकृत हो सकता है और प्रति राज्य – Tomer

+3

लोड फ़ाइलों को लोड कर सकता है, मैं बंडल आकार के बारे में आपकी चिंता का उत्तर दे रहा था। लेकिन मुझे ocLazyLoading के बारे में पता नहीं था और यह बहुत अच्छा लगता है क्योंकि मैं हमेशा ऐसा करना चाहता था। वे पारस्परिक रूप से अनन्य नहीं हैं, और ocLazyLoading को एक निर्भरता प्रबंधक इंजन की आवश्यकता होती है, जो $ script.js पर डिफ़ॉल्ट होती है लेकिन स्पष्ट रूप से आप RequJS का उपयोग कर सकते हैं, इसलिए मेरा लेना दोनों का उपयोग करना होगा। – floribon

उत्तर

15

आपको ocLazyLoad और RequJS दोनों की आवश्यकता है क्योंकि अब आप दो अलग मॉड्यूल अवधारणाओं से निपटते हैं - आपके जावास्क्रिप्ट मॉड्यूल और कोणीय आंतरिक मॉड्यूल।

प्रारंभिक बूटस्ट्रैप के बाद, एंजुलरज नए मॉड्यूल और घटकों जैसे निर्देशकों और नियंत्रकों को पंजीकृत करने की अनुमति नहीं देता है (कम से कम मानक तरीके का उपयोग नहीं कर रहा है)।

RequireJS केवल भार जावास्क्रिप्ट फ़ाइलें, लेकिन यह इस नए कोड

क्या ocLazyLoad करता आप RequireJS की तरह एक तीसरी पार्टी मॉड्यूल लोडर का उपयोग कर अपने अतिरिक्त फ़ाइलें लोड करने के लिए अनुमति देने के लिए है में नए कोणीय मॉड्यूल और घटकों पंजीकृत नहीं करता और अधिक महत्वपूर्ण बात - यह आलसी लोडर कोड में नए मॉड्यूल और घटकों को कोणीय में पंजीकृत करती है।

संक्षेप में - आप केवल आवश्यकताजेएस का उपयोग करके कोड लोड कर सकते हैं, लेकिन आप केवल आवश्यकताजेएस का उपयोग करके कोणीय मॉड्यूल और घटकों को लोड नहीं कर सकते हैं। अतिरिक्त काम की आवश्यकता है, जैसे ओसीलाज़ीलोड द्वारा किया गया।

+2

अपने आप लोड लोड संपत्तियों को oclazyload नहीं है? यदि आप केवल ओक्लाज़लोड का उपयोग कर सकते हैं तो दोनों का उपयोग क्यों करें? – rebelliard

+0

आपको नहीं करना है। लेकिन सवाल एक बनाम एक बनाम है। –

30

आप ओकेलाज़ीलोड के साथ RequJS का उपयोग कर सकते हैं लेकिन मैं इसकी अनुशंसा नहीं करता, यह संभव है क्योंकि लोगों ने मुझे ऐसा करने के लिए कहा और इसे एकीकृत करना आसान था। आपको RequJS की आवश्यकता नहीं है क्योंकि ocLazyLoad में जेएस/सीएसएस/टेम्पलेट्स फ़ाइलों के लिए अपने स्वयं के लोडर शामिल हैं, और यह किसी भी प्रकार की फाइल लोड नहीं कर सकता है, न केवल कोणीय मॉड्यूल।

यदि आप आलसी मॉड्यूल को आलसी लोड करना चाहते हैं तो आपको अंगुलर के साथ पंजीकरण करने के लिए एक lib की आवश्यकता होगी (या कोणीय 1.5 प्रतीक्षा करें जो आपको ऐसा करने की अनुमति देगा)।

निष्कर्ष है: आप ocLazyLoad साथ RequireJS उपयोग कर सकते हैं, या बस ocLazyLoad (अनुशंसित), लेकिन आप उपयोग नहीं कर सकते सिर्फ RequireJS

+0

ग्रेट स्पष्टीकरण। लेकिन oclazyload लागू करते समय मुझे संदेह था। Oclazyload का उपयोग करना, लोड करना आसान है। जब भार निर्भरता की बात आती है, तो जेएस की आवश्यकता होती है, अगर मैंने शिम में डीपी का उल्लेख किया है, तो यह स्वचालित रूप से निर्भरता लोड करेगा। लेकिन oclazyload में, मुझे प्रत्येक रूटिंग के लिए मैन्युअल रूप से प्रत्येक निर्भरता का उल्लेख करना होगा। निर्भरता लोड करने के लिए requjs की तरह कोई कोड पुन: उपयोग कर रहा है? –

+0

क्या कोई निर्भरता प्रबंधक है? –

+0

मुझे लगता है कि निर्भरताओं को बनाए रखने की आवश्यकता है। निर्भरता के लिए कोड में मुख्य करना आसान है। Requjs के साथ OcLazyLoad बेहतर कोड को पुन: उपयोग करने के लिए और पुन: उपयोग के लिए बेहतर होगा। –

संबंधित मुद्दे