2016-04-25 24 views
0

Ich entwickle eine große mobile App, die auf alten Geräten funktioniert. Und ich habe ein Problem der langen $ Digest Zeit getroffen.
Können Sie mir einen Rat geben, wie reduzieren Sie es?
Ich erwog den Aufruf $scope.$digest() anstelle von $timeout(), um zu verhindern, dass $ digest auf $ rootScope ausgelöst wird, und nur die erforderlichen $ scopes und ihre Childs aktualisiert, wenn sie benötigt werden.
Aber es gibt ein anderes Problem, ich muss die $$ Phase jedes Mal überprüfen, wenn ich $ digest auf $ scope anrufe, und es sieht für mich merkwürdig aus. Ich denke, dass ich etwas falsch mache.

+0

versuchen, Watcher-Nummern zu reduzieren, verwenden Einweg-Bindung anstelle von Zweiweg-, verwenden 'ngIf' anstelle von' ngShow' – MarkoCen

+0

Dank, ich habe eckige 1.3 und Ereignis nicht über Einwegbindung, also Ihre Antwort ist sehr hilfreich. –

Antwort

0

Sie sollten die meiste Zeit nicht $ verdauen müssen. Angular behandelt diese rundenbasierten Ereignisse bereits in Javascript. Was Sie sollten wirklich konzentrieren sich auf als weniger möglich zu verwenden,

  1. Zwei-Wege-Datenbindung (einmal binden, oder passieren Daten durch Veranstaltungen, etc.)
  2. Zweiweg-Datenbindung - ernst, es ist das Schlimmste, was zu tun mit diesem Rahmen
  3. Beobachter, vor allem diejenigen, die Sammlungen
  4. schwere jquery/Winkelelement Nutzung durch dom Manipulation
  5. haben einen Blick auf diese Führungs Uhren, https://github.com/johnpapa/angular-styleguide