1. Начальная стадия
Каждый должен знать, что когда браузер загружает HTML -страницу, он сначала проанализирует страницу HMTL в дерево DOM, а затем загружает каждый узел элемента в дерево DOM -дерево один за другим. Мы можем относиться к AngularJS как библиотеку JS, похожая на JQUERY. Мы вводим его в HTML через тег <cropript>. В настоящее время Angular будет обычным узел DOM, ожидающим анализа браузера. Когда браузер анализирует этот узел и обнаруживает, что он является файлом JS, браузер остановит анализ оставшихся узлов DOM и начнет выполнять этот js (то есть angular.js). В то же время, Angular настроит слушателя событий, чтобы прослушать событие Domcontent, загруженное браузером. Когда угловые прислушиваются к этому событию, угловое приложение будет запущено.
2. Стадия инициализации
После угловых запуска он ищет директиву NG-APP, а затем инициализирует серию необходимых компонентов (то есть инжектор $, услуга $ compil и $ oorcope), а затем снова начинает анализировать дерево DOM.
3. Скомпилируйте и связывайте
Служба $ compilire находит элементы DOM с объявленными инструкциями, пройдя дерево DOM. При встрече с элементом DOM с одной или несколькими инструкциями он сортирует инструкции (на основе приоритета инструкции), а затем использует службу инжектора $ для поиска и сбора функции компиляции инструкции и выполнить ее.
После запуска метода компиляции каждого узла служба компиляции $ будет вызвать функцию ссылки. Эта функция ссылки устанавливает мониторинг для инструкций, которые связаны с закрытой областью. Такое поведение создает живой взгляд.
Наконец, после завершения сервиса $ компиляции, время выполнения AngularJS готова.
4. Стадия работы
Angular обеспечивает свой собственный цикл событий. Сама инструкция регистрирует слушателя событий, поэтому, когда событие запускается, функция инструкции будет работать в цикле $ digest of angularjs. Петля $ Digest будет ждать список выражений $ Watch. Когда будут обнаружены изменения модели, будет вызвана функция $ Watch, а затем список $ Watch снова просматривается, чтобы убедиться, что модель не была изменена.
Как только цикл $ Digest стабилизируется, и никаких потенциальных изменений не обнаруживается, процесс выполнения покидает угловой контекст и обычно возвращается в браузер, и DOM будет отображаться здесь.
Нарисуйте ключевые шаги вышеуказанного процесса в график следующим образом:
Выше приведено подробное введение в процесс выполнения AngularJS. Мы будем продолжать организовывать соответствующую информацию в будущем. Спасибо за поддержку этого сайта.