AngularJS執行流程詳解

2021-08-28 06:27:06 字數 782 閱讀 7258

大家應該都知道,當瀏覽器載入乙個html頁面時,它會將hmtl頁面先解析成dom樹,然後逐個載入dom樹中的每乙個元素節點。我們可以把angularjs當做乙個類似jquery的js庫,我們通過

compile服務通過遍歷dom樹的方式查詢有宣告指令的dom元素。當碰到帶有乙個或多個指令的dom元素時,它會排序這些指令(基於指令的priority優先順序),然後使用compile服務通過遍歷dom樹的方式查詢有宣告指令的dom元素。當碰到帶有乙個或多個指令的dom元素時,它會排序這些指令(基於指令的priority優先順序),然後使用injector服務查詢和收集指令的compile函式並執行它。

每個節點的編譯方法執行之後,$compile服務就會呼叫鏈結函式。這個鏈結函式為繫結了封閉作用域的指令設定監控。這一行為會建立實時檢視。

最後,在$compile服務完成後,angularjs執行時就準備好了。

angular提供了自己的事件迴圈。指令自身會註冊事件***,因此當事件被觸發時,指令函式就會執行在angularjs的digest迴圈中。digest迴圈中。digest迴圈會等待watch表示式列表,當檢測到模型變化後,就會呼叫watch表示式列表,當檢測到模型變化後,就會呼叫watch函式,然後再次檢視$watch列表以確保沒有模型被改變。

一旦$digest迴圈穩定下來,並且檢測到沒有潛在的變化了,執行過程就會離開angular上下文並且通常會回到瀏覽器中,dom將會被渲染到這裡。

流程圖如下:

springmvc的執行流程詳解

1.什麼是mvc mvc是model view controller的縮寫,它是乙個設計模式 2.springmvc執行流程詳細介紹 第一步 發起請求到前端控制器 dispatcherservlet 可以根據xml配置 註解進行查詢 第四步 前端控制器呼叫處理器介面卡去執行handler 第五步 處...

AngularJS 1 啟動流程

angularjs的原始碼在整體上,與其它很多庫和框架一樣,是乙個自執行函式,其整體結構簡化如下 function window,document,undefined bindjquery 繫結jquery publishexternalapi angular 對外公布angularjs的函式 jq...

Angular JS 中 指令詳解

angular js的強大功能就在於其可以自定義很多指令,現在就指令做一下詳細的剖析。乙個angular js 指令 directive 需要指定乙個唯一的名字 mydirective 和乙個函式,其中返回乙個物件,該物件包含該指令應有的一些行為,具體參見如下所有的屬性。directive mydi...