Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

कैसे अलग डोम तत्व जावास्क्रिप्ट में स्मृति रिसाव का कारण बन सकते हैं?

<घंटा/>

अलग किए गए डोम तत्व

डिटैच्ड DOM एलिमेंट वे एलिमेंट हैं जिन्हें DOM से हटा दिया गया है लेकिन जावास्क्रिप्ट के कारण उनकी मेमोरी अभी भी बरकरार है। इसका मतलब यह है कि जब तक तत्व के पास कहीं भी किसी चर या वस्तु का संदर्भ होता है, तब तक वह DOM से नष्ट होने के बाद भी कचरा एकत्र नहीं करता है।

DOM एक डबल-लिंक्ड ट्री की तरह है जिसका अर्थ है कि ट्री में एक नोड का संदर्भ पूरे ट्री को कचरा संग्रहण से रोक देगा।

आइए जावास्क्रिप्ट में एक डोम तत्व बनाने का एक उदाहरण लें। तत्व बनाने के बाद इसे नष्ट कर दें लेकिन इसे धारण करने वाले चर को हटाना भूल जाएं। यह परिदृश्य एक अलग DOM की ओर ले जाता है जिसका न केवल विशेष DOM तत्व बल्कि पूरे पेड़ के लिए भी संदर्भ होता है।

उदाहरण

निम्नलिखित उदाहरण में, DOM से हटाए जाने के बाद भी, 'someText' का वैश्विक 'मान' ऑब्जेक्ट में अभी भी एक संदर्भ होगा। यही कारण है कि इसे कचरा संग्रहकर्ता से समाप्त नहीं किया जा सकता है और स्मृति का उपभोग करना जारी रखता है। इससे स्मृति रिसाव होता है।

<html>
<body>
<script>
   var example = document.createElement("p");
   example.id = "someText";
   document.body.appendChild(example);
   var value = {
    text: document.getElementById('someText')
   };
   function createFun() {
      value.text.innerHTML = "Javascript is not Java";
   }
   createFun();
   function deleteFun() {
      document.body.removeChild(document.getElementById('someText'));
   }
   deleteFun();
</script>
</body>
</html>

मेमोरी लीक से बचना

स्मृति रिसाव से बचने के लिए, सबसे अच्छा अभ्यास श्रोता के अंदर var उदाहरण डालना है, जो इसे स्थानीय चर बनाता है। जब var उदाहरण हटा दिया जाता है तो ऑब्जेक्ट के लिए पथ कटऑफ हो जाएगा, जिससे कचरा संग्रहकर्ता स्मृति को मुक्त कर सकेगा।


  1. जावास्क्रिप्ट डोम क्या है?

    जावास्क्रिप्ट दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम) एक वेबपेज के HTML तत्वों का प्रतिनिधित्व है। यह एक इंटरफ़ेस है जिसका उपयोग हम किसी वेब पेज की सामग्री या शैली को बदलकर उसमें हेरफेर करने के लिए कर सकते हैं। हम वेबपेज पर राइट क्लिक करके और निरीक्षण का चयन करके DOM तक पहुँच सकते हैं। ऐसा करने से, जिस व

  1. हम इंटरनेट एक्सप्लोरर में जावास्क्रिप्ट को कैसे डिबग कर सकते हैं?

    त्रुटियों को ट्रैक करने का सबसे बुनियादी तरीका है अपने ब्राउज़र में त्रुटि जानकारी चालू करना। डिफ़ॉल्ट रूप से, जब पृष्ठ पर कोई त्रुटि होती है, तो Internet Explorer स्थिति पट्टी में एक त्रुटि चिह्न दिखाता है। इस आइकन पर डबल-क्लिक करने से आप एक डायलॉग बॉक्स में पहुंच जाते हैं, जिसमें हुई विशिष्ट त्र

  1. बटन पर ली तत्वों को कैसे हटाएं जावास्क्रिप्ट में क्लिक करें?

    मान लें कि निम्नलिखित हमारी अनियंत्रित सूची (उल) है - JavaScript निकालें MySQL Remove MongoDB निकालें Java निकालें ऊपर, आप प्रत्येक ली तत्व के साथ निकालें बटन देख सकते हैं। इस बटन पर क्लिक करने पर, आप किसी भी li तत्व को हटा सकते हैं। बटन क्लिक पर ली तत्वों को हटाने के लिए कोड निम्नलिखित है; उद