remove - javascript create element with class
Javascript: document.createElement('''') y eliminar DOMElement (2)
Después de que la función finaliza, ya no hay ninguna referencia al objeto, es decir, si el recolector de basura funciona correctamente, debe recopilarse (existe un error de IE que impide que los objetos con referencias circulares se recopilen si se trata de nodos DOM).
Además, su código está roto ya que las variables locales no se pueden eliminar: intentar hacerlo arrojará un error de sintaxis en el modo estricto ES5.
Si crea un elemento dentro de una función como:
function makeDomElement()
{
var createdElement = document.createElement(''textarea'');
}
Y no lo agrega en ningún lugar en el DOM, es decir, a través de las funciones .appendChild, ¿todavía permanece en la memoria? Entonces tendrías que hacer
function makeDomElement()
{
var createdElement = document.createElement(''textarea'');
delete createdElement;
}
Tengo curiosidad :)
Va a variar de navegador a navegador, sin embargo, la palabra clave javascript delete
no tiene nada que ver con el método createElement
del DOM. No hay necesidad de usar delete
.
Lo que sucederá es que la referencia al elemento que se encuentra actualmente en el createdElement
obtendrá basura recolectada. Ahora, en el caso de IE eso significará que el elemento tendrá su conteo de referencia reducido a 0 por lo que se destruirá a sí mismo y liberará su memoria. Otros navegadores hacen las cosas de manera diferente, típicamente los elementos en el DOM son en sí mismos objetos recolectados y se eliminarán durante el mismo (o quizás un DOM específico) ciclo de GC.
Si el elemento se hubiera agregado al documento, en el caso de IE, se agregaría otra referencia al elemento, de modo que cuando se elimine la referencia en createdElement
el elemento element aún tendrá un recuento de referencias distinto de cero y continuará existiendo.
En el caso de otros navegadores donde los elementos en sí son basura, el elemento no se recolectaría, ya que el recopilador lo vería en el gráfico de los objetos conectados al documento.