jquery angularjs memory-leaks event-listener

jquery - ¿Necesitamos desvincular a los oyentes de eventos en las directivas cuando los inicios angulares se destruyen?



angularjs memory-leaks (2)

Hay una gran pérdida de memoria en mi aplicación, pero no he descubierto las causas, y aquí está el fondo.

  • Estoy usando AngularJS + JQuery (plugins)
  • Muchos oyentes están obligados a lo siguiente:

    $ (elemento) .on ("keyup", function () {});

Así que la pregunta es

¿Debo desvincular a los oyentes en directivas siguiendo?

scope.$on("$destroy", function() { $(element).off(); });

Por cierto, ¿cómo suele descubrir la pérdida de memoria en una aplicación web? Utilizo el perfil de Chrome (consulte aquí Perfilando el rendimiento de la memoria ) pero no pude rastrear los códigos en los que se pierde la memoria. ¿Tienes alguna sugerencia?

¡Muchas gracias!



La documentación de Angular para la destrucción de alcance implica que es necesario eliminar los eventos DOM.

http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy

Tenga en cuenta que, en AngularJS, también hay un evento $ destroy jQuery, que se puede usar para limpiar los enlaces de DOM antes de que un elemento se elimine del DOM.