2012-02-11 18 views

Respuesta

6

Esto presenta una pérdida de memoria en algunos navegadores porque enlaza un objeto C nativo (el elemento DOM) y un objeto JS juntos y algunos algoritmos de recolección de basura no pueden manejar esto. IE es uno de ellos.

Aquí es un artículo de MSDN sobre pérdidas de memoria de IE: http://msdn.microsoft.com/en-us/library/ie/bb250448(v=vs.85).aspx

+6

Para un contexto adecuado, esto solo introduce una pérdida de memoria si el objeto en cuestión se elimina del DOM y usted espera que sea basura. Y, la pérdida de memoria solo tiene consecuencias si los datos asociados con el elemento DOM son enormes o hay miles de estos que se crean y luego se eliminan del DOM. Para un objeto que permanece en el DOM durante toda la vida de su página, no hay pérdida de memoria. – jfriend00

+0

¡Buena nota! Olvidé mencionar que necesitas quitar el elemento para que ocurra la filtración. –

+0

Fantastic input chicos! ¡Gracias! –

3

En pocas palabras, ¿por qué no usar las herramientas adecuadas disponibles? No tiene idea si en el futuro, cerca o lejos, cualquier nombre de propiedad personalizado que esté utilizando se agregará a las especificaciones de w3c para ese elemento en particular. Ahora, de repente tu código está roto.

No importa que agregar propiedades personalizadas a elementos que ya tienen propiedades definidas hace que su código sea una pesadilla de mantenimiento. Ya sea que usted u otra persona lo mantenga en el futuro, habrá un momento "wtf" en el que el desarrollador intentará determinar si a) se le agregó una propiedad personalizada al elemento ob) el elemento en sí es de hecho una objeto personalizado

Finalmente, ¿qué pasa si ese elemento se reemplaza en el dom a través de Ajax o HTML dinámico? Ahora la propiedad se ha ido y su código está roto.

+3

nada de lo que dices tiene sentido ... –

+0

¿Qué no tiene sentido? –

Cuestiones relacionadas