5 votes

Libération de la mémoire utilisée par les nœuds DOM non attachés en Javascript

Dans le cadre de mon application, je suis en train de constituer un ensemble de petits nœuds Dom qui ne sont pas affichés tous en même temps. Je les stocke dans un tableau interne. L'utilisateur peut invoquer leur affichage, auquel cas je les reparents à la div qui est utilisée pour les afficher. C'est très bien comme ça. Mais lorsque le moment est venu de tous les remplacer par de nouveaux, je veux détruire les anciens (en les désallouant effectivement). Sinon, au fil du temps, l'utilisation de la mémoire pourrait croître de façon exponentielle. Comment puis-je forcer le moteur js du navigateur à faire cela ? Est-ce que le fait de donner la valeur null à chacun des éléments de mon tableau de nœuds Dom est suffisant ? Y a-t-il autre chose que je doive faire ? Ou peut-être n'ai-je pas à m'en soucier du tout ?

5voto

Kevin Babcock Points 4688

Si vous attribuez la valeur null à chaque élément, ils seront automatiquement récupérés.

5voto

kmkaplan Points 10338

Oui, mettre les éléments à null devrait être correct Sauf que certains détails d'implémentation doivent être pris en compte avec Internet Explorer : sa gestion des références circulaires est douteuse. Voir http://msdn.microsoft.com/en-us/library/bb250448.aspx

Références circulaires - Lorsque des références mutuelles sont comptées entre l'infrastructure COM d'Internet Explorer et tout moteur de script, les objets peuvent fuir la mémoire

Alors vous tienen pour briser les références circulaires dans certains cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X