欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AngularJS執(zhí)行流程詳解

 更新時(shí)間:2017年02月17日 14:17:02   作者:Mr.Panda  
本文主要介紹了AngularJS的執(zhí)行流程。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

一.啟動(dòng)階段

瀏覽器解析HTML頁(yè)面,讀取到angular.js的<script>標(biāo)簽后會(huì)停止解析后面的DOM節(jié)點(diǎn),開(kāi)始執(zhí)行angular.js,與此同時(shí),Angular會(huì)設(shè)置一個(gè)事件監(jiān)聽(tīng)器來(lái)監(jiān)聽(tīng)DOMContentLoaded事件,當(dāng)Angular監(jiān)聽(tīng)到這個(gè)事件后,Angular就啟動(dòng)了。

二.初始化階段

Angular啟動(dòng)后,它會(huì)查找ng-app指令,然后初始化一系列必要的組件(即$injector、$compile服務(wù)以及$rootScope),接著繼續(xù)解析DOM。

三.編譯、鏈接階段

1.Angular使用$compile服務(wù)通過(guò)遍歷DOM樹(shù)的方式查找?guī)в兄噶畹腄OM元素,然后根據(jù)指令的priority優(yōu)先級(jí)對(duì)這些查找到的指令進(jìn)行排序。

2.之后使用$injector服務(wù)查找和收集每個(gè)指令下面的compile函數(shù),并執(zhí)行它。

3.每個(gè)節(jié)點(diǎn)的compile方法運(yùn)行之后,$compile服務(wù)就會(huì)調(diào)用鏈接函數(shù)。這個(gè)鏈接函數(shù)為綁定了封閉作用域的指令設(shè)置監(jiān)控。這一行為會(huì)創(chuàng)建實(shí)時(shí)視圖。

4.以上所有完成后,Angular啟動(dòng)完成

四.運(yùn)行階段

Angular提供了自己的事件循環(huán)。指令自身會(huì)注冊(cè)事件監(jiān)聽(tīng)器,因此當(dāng)事件被觸發(fā)時(shí),指令函數(shù)就會(huì)運(yùn)行在AngularJS的$digest循環(huán)中。$digest循環(huán)會(huì)等待$watch表達(dá)式列表,當(dāng)檢測(cè)到模型變化后,就會(huì)調(diào)用$watch函數(shù),然后再次查看$watch列表以確保沒(méi)有模型被改變。一旦$digest循環(huán)穩(wěn)定下來(lái),并且檢測(cè)到?jīng)]有潛在的變化了,執(zhí)行過(guò)程就會(huì)離開(kāi)Angular上下文并且通常會(huì)回到瀏覽器中。

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

最新評(píng)論