2012-05-25 43 views
6

Digamos que crear una clase que tiene su propio lienzo con:¿Qué sucede con los elementos DOM no utilizados?

this.canvas = document.createElement("canvas"); 

utilizo ese lienzo, dibujar algunas cosas, etc., pero nunca añadir el lienzo para el árbol DOM. Y cuando termine, ya no usaré toda la clase.

Así que cuando I elimine la clase que utilizó el lienzo, ¿el lienzo aún ocupa memoria? ¿Debo eliminarlo de alguna manera?

O, como una pregunta más general: ¿Qué sucede con los elementos no utilizados que no están en el árbol DOM más o nunca (no visibles en el sitio web)? ¿Se recolectarán basura y/o se puede acelerar un poco para aumentar el rendimiento?

+0

No creo que el buscador los recoja, porque nunca estará seguro de cuándo se podría inyectar en el DOM. –

+3

Van al DOM DOM si han sido buenos, o DOM hell si han sido malos. – Ashe

+0

+1 para divertirme;) – TheSHEEEP

Respuesta

1

Como ya se señaló correctamente a sí mismo, esto no se trata del árbol DOM, es más acerca de referenciar objetos & recolectores de basura.

Al eliminar/eliminar una clase por null ing el objeto base, todos los coleccionistas modernos se ocuparán de usted. Al no insertar el nodo en el DOM, tampoco debes temer a las referencias ocultas. He visto a varias personas establecer explícitamente la referencia <canvas> a null también, pero supongo que esto es pura paranoia IE8.

+0

Suena bien. Gracias por la respuesta. Adiviné eso, pero es mucho mejor estar seguro :) – TheSHEEEP

Cuestiones relacionadas