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
A
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,
- Zwei-Wege-Datenbindung (einmal binden, oder passieren Daten durch Veranstaltungen, etc.)
- Zweiweg-Datenbindung - ernst, es ist das Schlimmste, was zu tun mit diesem Rahmen
- Beobachter, vor allem diejenigen, die Sammlungen
- schwere jquery/Winkelelement Nutzung durch dom Manipulation
- haben einen Blick auf diese Führungs Uhren, https://github.com/johnpapa/angular-styleguide
versuchen, Watcher-Nummern zu reduzieren, verwenden Einweg-Bindung anstelle von Zweiweg-, verwenden 'ngIf' anstelle von' ngShow' – MarkoCen
Dank, ich habe eckige 1.3 und Ereignis nicht über Einwegbindung, also Ihre Antwort ist sehr hilfreich. –