उत्सुक लोडिंग क्या है?


161

उत्सुक लोडिंग क्या है? मैं PHP / JS में कोड करता हूं लेकिन एक अधिक सामान्यीकृत उत्तर ठीक होगा।

मैंने जावा और रूबी के संबंध में बहुत सारे प्रश्न देखे, लेकिन मुझे इनमें से किसी भी भाषा का ज्ञान नहीं है, और मुझे कोड पढ़ना कठिन लगता है। मुझे नहीं पता कि पहली जगह में क्या करना चाहिए था


बड़ा सवाल है।
पीए-जीडब्ल्यू

जवाबों:


383

तीन स्तर हैं:

  1. उत्सुक लोड हो रहा है: आप सब कुछ पूछते समय करते हैं। क्लासिक उदाहरण है जब आप दो मैट्रिसेस को गुणा करते हैं। आप सभी गणना करते हैं। यह उत्सुक लोड हो रहा है;
  2. आलसी लोडिंग: आप केवल आवश्यकता होने पर गणना करते हैं। पिछले उदाहरण में, आप तब तक कोई गणना नहीं करते जब तक आप परिणाम मैट्रिक्स के एक तत्व तक नहीं पहुंचते; तथा
  3. अति-उत्सुक लोडिंग: यह वह जगह है जहां आप प्रयास करते हैं और अनुमान लगाते हैं कि उपयोगकर्ता इसे क्या कहेगा और इसे प्रीलोड करेगा।

मुझे आशा है कि आप जिस संदर्भ में इसे देख रहे हैं, वह समझ में आता है।

मैं आपको एक "वेबबी" उदाहरण देता हूं।

मेनू आइटम या नेविगेशन के लिए रोलओवर छवियों जैसे पृष्ठ की कल्पना करें। इस पृष्ठ पर चित्र लोड करने के तीन तरीके हो सकते हैं:

  1. पेज ( उत्सुक ) रेंडर करने से पहले आवश्यक हर एक छवि को लोड करें ;
  2. पृष्ठ लोड पर केवल प्रदर्शित छवियों को लोड करें और यदि आवश्यक हो ( आलसी ) होने पर दूसरों को लोड करें ; तथा
  3. पृष्ठ लोड पर केवल प्रदर्शित छवियों को लोड करें। पृष्ठ के बाद पृष्ठभूमि में अन्य छवियों को लोड करने के बाद अगर आपको उनकी ज़रूरत है ( अति-उत्सुक )।

सही बात?


3
यद्यपि आप विशिष्ट प्रश्न से परे जाकर जहाज पर चढ़ गए; यह अभी भी एक उत्कृष्ट जवाब है। यह छोटा, सरल है और एक उदाहरण देता है।
फिल

23

यह आलसी लोडिंग के विपरीत है , जो ऑब्जेक्ट की आवश्यकता होने तक किसी ऑब्जेक्ट के आरंभीकरण को रोकता है। एगर लोडिंग किसी ऑब्जेक्ट को निर्माण पर आरंभ करता है।


1
मैं जोड़ सकता हूं कि ये शब्द आम तौर पर एक ORM (ऑब्जेक्ट रिलेशनल मैपर) के संदर्भ में उपयोग किए जाते हैं (और शायद आते हैं?), जहां आप किसी ऑब्जेक्ट को किसी संबंधपरक डेटाबेस में तालिका में मैप करते हैं।
लोकी

10

यदि आप कल्पना करते हैं कि आपके पास ऑब्जेक्ट है जिसे उस व्यक्ति को बुलाया गया है जिसका नाम, जन्म की तारीख और कम महत्वपूर्ण विवरण हैं, तो पसंदीदा रंग, पसंदीदा टीवी कार्यक्रम कह सकते हैं।

इस कक्षा को आलसी लोड करने के लिए आप इसे डेटाबेस से शायद पढ़ रहे होंगे, जो सभी मुख्य रूप से उपयोग किए जाने वाले विवरणों (जैसे नाम और जन्मतिथि) को पढ़ते हैं और केवल कम उपयोग किए गए विवरणों में पढ़ते हैं, जब उनकी आवश्यकता होती है, तो उत्सुक लोडिंग विपरीत होती है। , यानी आप एक ही समय में सभी विवरणों में लोड करते हैं।

आलसी लोडिंग के लाभ को अक्सर इफ़ेक्ट के रूप में उद्धृत किया जाता है, हालांकि अगर ऑब्जेक्ट जटिल या प्रभावकारिता नहीं हैं, तो चिंता उत्सुक लोडिंग का उपयोग नहीं किया जा सकता है।


7
जब आप इसके बारे में सोचते हैं, तो आलसी लोडिंग प्रत्येक फ़ंक्शन कॉल पर कम मेमोरी और अधिक कंप्यूटेशन के बारे में अधिक होती है, जबकि उत्सुक लोडिंग क्लास बनने पर अधिक मेमोरी और अधिक कंप्यूटेशन का उपयोग करेगा जब फ़ंक्शन को कॉल किया जाता है।
लोकी

0

एगर लोडिंग का उपयोग Angular 8. में भी किया जाता है। इसका मतलब है कि इंस्टैंट एप्लिकेशन को ब्राउजर के अंदर हम अपने आप लोड कर लेते हैं, तुरंत किसी विशेष मॉड्यूल के अंदर सभी कोड प्राप्त कर लेते हैं, उदाहरण के लिए, मान लें कि आपने बस साइन और साइनअप के साथ एक प्रामाणिक मॉड्यूल बनाया है घटक है कि एक अनुप्रयोग मॉड्यूल में आयात हो जाता है ।

इसके विपरीत, आलसी लोडिंग है , जो तब होता है जब हम ऐप मॉड्यूल को बताते हैं, जिसमें प्रामाणिक मॉड्यूल लोड होता है, केवल एक निश्चित समय पर प्रामाणिक मॉड्यूल को लोड करने के लिए जैसे उपयोगकर्ता किसी निश्चित मार्ग पर जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.