C'est plus un FYI que d'une réelle réponse, mais il est également tout à fait intéressant.
À partir du W3C DOM de base spécification (http://www.w3.org/TR/DOM-Level-2-Core/core.html):
Le Core DOM Api sont conçus pour être compatibles avec un large éventail de langues, y compris à la fois générales de l'utilisateur, les langages de script et le plus difficile langues utilisé par la plupart des programmeurs professionnels. Ainsi, les DOM Api besoin pour fonctionner dans une variété de gestion de la mémoire de philosophies, de liaisons de langage qui n'exposez pas la gestion de la mémoire de l'utilisateur, par l'intermédiaire de ceux (notamment Java) qui explicite les constructeurs, mais de fournir automatiquement un mécanisme de collecte des déchets pour récupérer automatiquement la mémoire inutilisée, à ceux (surtout en C/C++) qui exigent généralement le programmeur explicitement allouer de la mémoire d'objet, de la piste où il est utilisé, et explicitement, gratuit pour les réutiliser. Pour assurer une API cohérente dans l'ensemble de ces plates-formes, les DOM ne traite pas des problèmes de gestion mémoire, mais à la place des feuilles de ces pour la mise en œuvre. Ni l'un ni l'explicite liaisons de langage défini par l'API DOM (ECMAScript et Java) exiger de la gestion de la mémoire de méthodes, mais DOM liaisons pour les autres langues (surtout en C ou C++) peut exiger d'un tel soutien. Ces extensions seront de la responsabilité de ceux adaptation de l'API DOM pour une langue spécifique, pas les DOM Groupe de Travail.
En d'autres termes: gestion de la mémoire est laissé à la mise en œuvre de la spécification DOM dans différentes langues. Vous devez regarder dans la documentation de la DOM implémentation en javascript afin de trouver une méthode pour supprimer un objet DOM à partir de la mémoire, qui n'est pas un hack. (Il y a cependant très peu d'informations sur le MDC site sur ce sujet).
Comme une note sur jQuery#remove
et jQuery#empty
: à partir de ce que je peux dire, aucune de ces méthodes n'est rien d'autre que de supprimer Object
s depuis les DOM node
s ou en supprimant des DOM node
s à partir de l' document
. Ils ne supprimer Que, bien sûr, ne signifie pas qu'il n'y a pas de mémoire allouée à ces objets (même si elles ne sont pas dans l' document
plus).
Edit: Le passage ci-dessus est superflu puisque de toute évidence jQuery ne peut pas faire des merveilles et de travailler autour de la DOM de la mise en œuvre du navigateur utilisé.