Estoy optimizando mi gran Angular App. Como he encontrado una que Google DevTools es muy bueno para detectar problemas. Como yo sólo han comenzado a aprender acerca de DevTools, estoy muy confundido acerca de fugas de memoria.

Cuando me de la espalda y de las diferentes páginas en mi aplicación, Perfil montón de Instantáneas tamaño está aumentando de nuevo y de nuevo, así que creo que hay algún objeto que no está siendo limpiada por el GC y es por eso que mi aplicación es cada vez lento después de algún tiempo, entonces, ¿cómo resolver esto. Por favor, ayudar.

Nota

Esto es lo que yo entiendo el uso de DevTools, por favor me corrija si estoy equivocado. Otras sugerencias son bienvenidos.

Hasta ahora lo he utilizado

  1. AngularOnce directiva para la reducción de reloj cada vez que se requiera.
  2. QuickList directiva para sustituir ng-repeat con rápido-ng-repeat.
  3. InView Directiva, para manejar grandes de la lista así que me estoy quitando DOM que no está en la ventanilla.
  4. La carga perezosa enfoque de ngInfiniteScroll directiva.
  • He aquí un buen ejemplo de qué tipo de información necesitas dar para que alguien sea capaz de proporcionar una respuesta decente: stackoverflow.com/questions/20654684/…
  • Una actualización a esta respuesta, ahora que angulares 1.3.x, usted puede utilizar el :: bind-una vez que el enfoque de la mayoría de los casos, en lugar de añadir otra dependencia a cargo de esto.
  • Si usted está usando AngularUI Router, por favor, ser conscientes de sus pérdidas de memoria de también. github.com/angular-ui/ui-router/issues/545
InformationsquelleAutor Jay Shukla | 2014-03-14

1 Comentario

  1. 37
    1. Quitar los enlaces para evitar fugas de memoria, Uso de los Ámbitos de
      $destroy() Método.

      Nota:

      La causa más probable de la pérdida de memoria en Angular es utilizado en JQuery
      sus directivas. Si conecta un evento-oyente en su directiva
      el uso de un plugin de JQuery, la segunda sería mantener una referencia a su DOM
      incluso después de Angular elimina su propia referencia a la DOM, lo que significa que
      nunca sería recolección de basura por el navegador, que a su vez
      significa «Separado árbol DOM» en su memoria

      En su Directiva a mantener la práctica para desenlazar los Eventos de jQuery.
      $destory Método que puede ser utilizado para limpiar DOM enlaces antes de un
      el elemento se elimina de la DOM.

       $scope.$on("$destroy",function() {
          $( window ).off( "resize.Viewport" );
       });    
    2. No Olvide Cancelar $tiempo de espera de los Temporizadores En Su $destruir Eventos En
      AngularJS

      $scope.$on("$destroy",function( event ) {
          $timeout.cancel( timer );
      });
    • Y aquí es el completo artículo que usted ha mencionado.
    • El linky ha sufrido de enlace de la pudrición y el sitio está inactivo, sin embargo, Wayback tiene este archivados.

Dejar respuesta

Please enter your comment!
Please enter your name here