亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS模塊加載器的加載原理是怎樣的?

JS模塊加載器的加載原理是怎樣的?

蕭雁翎 2016-09-18 17:45:30
查看完整描述

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 方法中的回調函數才會被調用。


查看完整回答
2 反對 回復 2016-09-20
?
OlderSkee

TA貢獻123條經驗 獲得超103個贊

變量提升

從上往下

查看完整回答
1 反對 回復 2016-09-18
  • 3 回答
  • 1 關注
  • 1270 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號