2016-12-15 2 views
0

Ich bin eine Situation, wo ich ein Element klonen muss, lesen Sie es Attribute und andere Parsing-Funktionalität, aber jetzt seit ich nicht tun element.parentNode.appendChild(clonedElement) wie lösche ich diesen Klon aus Erinnerung?Javascript: Entfernen Sie ein Element.CloneNode() aus dem Speicher

var clonedElement = element.cloneNode(); 

// do some stuff with it 

clonedElement = null; // is this good enough? 

So ja, ist die clonedElement = null; gut genug, um sie aus dem Speicher löschen?

Antwort

1

Wenn Sie die Variable Bezug auf die DOM-Knoten entfernen möchten, verwenden Sie

element = null; 

Da Javascript Müll gesammelt wird, brauchen Sie keine Objekte selbst löschen werden sie entfernt werden, wenn es keine Möglichkeit gibt, um auf sie mehr zu verweisen.

aber

Wenn ein DOM-Element, das entfernt wird, ist Bezugsfrei (keine Verweise darauf zeigt) dann ja das Element selbst durch den Speicherbereinigungs up sowie jedem Fall Handlers/Zuhörer gerichtet mit ihr verbundenen.

Wenn Referenzen vorhanden sind, die immer noch auf dieses Element verweisen, werden das Element und seine Ereignis-Listener im Speicher beibehalten.

var removeChilds = function (node) 
{ 
    var last; 
    while (last = node.lastChild) node.removeChild(last); 
}; 

removeChilds(element) ; 
element=null; 
Verwandte Themen