1. Startphase
Jeder sollte wissen, dass beim Laden des Browsers eine HTML -Seite zuerst die HMTL -Seite in einen DOM -Baum analysiert und dann jeden Elementknoten im DOM -Baum einzeln lädt. Wir können AngularJs als JS -Bibliothek ähnlich wie JQuery behandeln. Wir stellen es durch das <Script> -Tag in html ein. Zu diesem Zeitpunkt wird Angular ein gewöhnlicher Dom -Knoten sein, der darauf wartet, dass der Browser analysiert wird. Wenn der Browser diesen Knoten analysiert und feststellt, dass es sich um eine JS -Datei handelt, hört der Browser auf, die verbleibenden Dom -Knoten zu analysieren und diese JS (d. H. Angular.js) auszuführen. Gleichzeitig wird Angular einen Ereignishörer einrichten, um das Domcontent -Ereignis des Browsers anzuhören. Wenn Angular dieses Ereignis hört, wird die Winkelanwendung gestartet.
2. Initialisierungsstadium
Nach dem Start von Angular sucht es nach der NG-App-Direktive, initialisiert dann eine Reihe notwendiger Komponenten (d. H. $ Injector, $ Compile Service und $ Rootscope) und beginnt dann erneut, den DOM-Baum zu analysieren.
3.. Kompilieren und Link
Der $ Compile -Service findet DOM -Elemente mit deklarierten Anweisungen durch Überqueren des Dom -Baumes. Wenn Sie auf ein DOM -Element mit einer oder mehreren Anweisungen stoßen, sortiert es die Anweisungen (basierend auf der Priorität der Anweisung) und verwendet dann den $ Injector -Dienst, um die Kompilierungsfunktion der Anweisung zu finden und zu sammeln und auszuführen.
Nachdem die Kompilierungsmethode jedes Knotens ausgeführt wurde, ruft der $ Compile -Dienst die Linkfunktion auf. Diese Verbindungsfunktion setzt Überwachung für Anweisungen fest, die an einen geschlossenen Bereich gebunden sind. Dieses Verhalten schafft eine lebende Sichtweise.
Nach Abschluss des $ Compile -Dienstes ist die AngularJS -Laufzeit fertig.
4. Betriebsstufe
Angular liefert eine eigene Ereignisschleife. Die Anweisung selbst registriert den Ereignishörer. Wenn das Ereignis ausgelöst wird, wird die Befehlsfunktion in der $ Digest -Schleife von AngularJs ausgeführt. Die $ Digest -Schleife wartet auf die $ Watch -Ausdrucksliste. Wenn die Modelländerungen erkannt werden, wird die $ Watch -Funktion aufgerufen, und dann wird die $ Watch -Liste erneut angesehen, um sicherzustellen, dass kein Modell geändert wurde.
Sobald sich die $ Digest -Schleife stabilisiert und keine möglichen Änderungen festgestellt werden, verlässt der Ausführungsprozess den Winkelkontext und kehrt normalerweise zum Browser zurück, und das DOM wird hier gerendert.
Zeichnen Sie die wichtigsten Schritte des obigen Prozesses wie folgt in eine Grafik:
Das obige ist eine detaillierte Einführung in den AngularJS -Ausführungsprozess. Wir werden in Zukunft weiterhin relevante Informationen organisieren. Vielen Dank für Ihre Unterstützung für diese Website.