3 回答
已采納
喵啊喵啊喵
TA貢獻19條經驗 獲得超44個贊
1. 首先,通過 use 方法來加載入口模塊,并接收一個回調函數, 當模塊加載完成, 會調用回調函數,并傳入對應的模塊。use 方法會 check 模塊有沒有緩存,如果有,則從緩存中獲取模塊,如果沒有,則創建并加載模塊。
2. 獲取到模塊后,模塊可能還沒有 load 完成,所以需要在模塊上綁定一個 "complete" 事件,模塊加載完成會觸發這個事件,這時候才調用回調函數。
3. 創建一個模塊時,id就是模塊的地址,通過創建 script 標簽的方式異步加載模塊的代碼(factory),factory 加載完成后,會 check factory 中有沒有 require 別的子模塊:
? ?- 如果有,繼續加載其子模塊,并在子模塊上綁定 "complete" 事件,來觸發本身 的 "complete" 事件;
? ?- 如果沒有則直接觸發本身的 "complete" 事件。
4. 如果子模塊中還有依賴,則會遞歸這個過程。
5. 通過事件由里到外的傳遞,當所有依賴的模塊都 complete 的時候,最外層的入口模塊才會觸發 "complete" 事件,use 方法中的回調函數才會被調用。
添加回答
舉報
0/150
提交
取消
