Ich habe eine App, die auf Low-End-PCs sehr langsam ist, und ich habe gerade Batarang heruntergeladen, um die Leistung zu überwachen.Leistungsmonitor der Digest-Zyklus-Ausführung
Auf einer leeren Seite, dass nur eine Kopf- und eine Sidebar hat, sehe ich:
Bedeutung, wird der Zyklus ständig läuft. Ich weiß nicht warum, weil ich nur auf die Seite schaue, nicht auf etwas rufe, nichts rühre.
Und in einer anderen AngularJS app (nicht von mir), ich sehe dies:
Wenn nichts geändert wird, wird eine Zusammenfassung alle 20-30 Sekunden läuft.
Warum kann so etwas passieren? Gibt es eine Möglichkeit zu überprüfen, welche Beobachter den Digest-Zyklus ausgelöst haben?
EDIT:
Gibt es eine Möglichkeit, alle schmutzigen Beobachter zu drucken, und sehen, was der Ausdruck, die schmutzig ist?
druckte ich einen zufälligen Beobachter:
JSON.stringify(getWatchers()[2]) "{"last":3,"eq":false}"
Es ist nicht der Ausdruck sagt
Überprüfen Sie, ob Sie irgendwo ein $ Timeout haben, debuggen Sie auch alle $ rootScope.apply Anrufe – Marcus
Es sieht aus wie die zweite Karte läuft alle 30 Sekunden, weil es 30 Sekunden dauert zu beenden. – pgreen2
@ pgreen2 nein .. es endet, ansonsten wird es weiterhin angezeigt – Amit