Ich habe eine AngularJS-App mit einem ausgelagerten Gitter (zwei verschachtelte ng-Wiederholung). Eine Seite hat ungefähr 25x40 Eingabeelemente. Am Anfang, der 1000 Bindungen machte, war die Paging-Leistung akzeptabel.Wie beschleunigt man eine AngularJS-Anwendung?
Aber dann wächst die Komplexität der Seite: dynamische Klassen, variierende Kontextmenüs, bedingter Inhalt für jede Zelle des Gitters. Und mit geschätzten 6000 Bindungen (6 pro Eingabeelement) wurde das Paging unbrauchbar langsam.
Meine Frage ist: Wie gehe ich generell Leistungsprobleme in AngularJS an? Der offensichtliche erste Schritt ist zu messen. Aber die Ergebnisse des Chrome Profilers sagen mir nicht viel, weit davon entfernt zu wissen, wie es weitergeht.
Self Total Function
-----------------------------------------------------------------
24 ms 2.79 s angular.js:7997 Scope.$digest
1 ms 1 ms controllers.js:365 setViewportData
16 ms 692 ms angular.js:13968 ngRepeatWatch
8 ms 22 ms angular.js:6439 extend.literal
9 ms 1.22 s angular.js:14268 ngSwitchWatchAction
16 ms 45 ms angular.js:12436 ngModelWatch
0 621 ms angular-ui-4.0.js:264 initDateWidget
0 13 ms angular.js:12859 ngClassWatchAction
0 70 ms angular.js:14184 ngStyleWatchAction
1 ms 5 ms angular-ui-4.0.js:261 getOptions
0 16 ms angular.js:579 copy
0 1 ms angular.js:4558 interpolateFnWatchAction
1 ms 2 ms angular.js:5981 token.fn.extend.assign
0 37 ms angular.js:8151 Scope.$eval
1 ms 1 ms angular.js:6137 extend.constant
14 ms 16 ms angular.js:651 equals
1 ms 1 ms angular.js:4939 $interpolate.fn
Abgesehen: Gibt es eine Chance, dass ‚Object.observe()‘ wird die Dinge in Zukunft beschleunigen (ohne Berücksichtigung von ‚initDateWidget‘, das ist natürlich ein anderes Thema)?
ich hier in dieser Frage gearbeitet Menschen Anwendungen beschleunigen NG2 zu helfen, sollte es in der Lage sein, Ihnen einige Einblicke zu bieten: https: // Stackoverflow. com/questions/42583421/how-to-compress-and-optimieren-ein-angular2-Anwendung – HappyCoder