2016-12-15 4 views
0

Je suis une situation où je dois cloner un élément, lire ses attributs et d'autres fonctionnalités d'analyse, mais maintenant je ne fais pas element.parentNode.appendChild(clonedElement) comment puis-je supprimer ce clone de Mémoire?Javascript: supprimer un élément.cloneNode() de la mémoire

var clonedElement = element.cloneNode(); 

// do some stuff with it 

clonedElement = null; // is this good enough? 

Alors oui, est le clonedElement = null; assez bon pour l'effacer de la mémoire?

Répondre

1

Si vous souhaitez supprimer la référence de la variable au nœud DOM, utilisez

element = null; 

Depuis Javascript est détruite, vous n'avez pas besoin de supprimer eux-mêmes des objets ils seront enlevés quand il n'y a aucun moyen se référer à eux plus.

mais

Si un élément DOM qui est supprimé est sans référence (aucune référence pointant vers elle) alors oui l'élément lui-même est capté par le collecteur des ordures ainsi que tout événement handlers/auditeurs associé avec.

S'il existe des références qui pointent toujours sur ledit élément, l'élément et ses écouteurs d'événement sont conservés en mémoire.

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

removeChilds(element) ; 
element=null;