AMD 與 CMD
阿新 • • 發佈:2019-01-10
執行時機 | 依賴方式 | 載入方式 | ||
AMD | 提前執行 | 依賴前置 | 提前非同步載入 | |
CMD | 延遲執行 | 依賴就近 | 提前非同步載入 | |
傳統載入js方式 | 按照頁面的顯示順序 先請求載入並執行 |
按照頁面順序依賴 | 按照順序載入 |
AMD : Asynchronous Module Definition 是requireJs在推廣過程中對模組的定義
CMD: Common Module Definition 是seaJs 在推廣過程中對模組的定義
這兩者規範的目的是為了 js 的模組化開發,特別是在瀏覽器端的
引深: javascript的非同步請求,是瀏覽器開啟新執行緒下載指令碼檔案【defer】
defer async 使得js的下載與頁面中其他元素的渲染是並行執行的
非同步任務的實現方式:
1 使用多執行緒的方式 非同步執行
2 使用單執行緒的事件迴圈機制【回撥函式,定時器執行】
同步 非同步 並行 序列 併發
併發: 當有多個執行緒在操作時, 如果系統只有一個cpu,不可能同時進行一個以上的執行緒,只能將cpu執行時間劃分若干個時間段,再將時間段分配給各個執行緒執行, 在一個時間段的執行緒程式碼執行時,其他執行緒處於掛起狀態
並行: 指兩個或兩個以上事件或活動在同一時刻發生,並行性使多個程式同一時刻可在不同cpu上同時執行
當系統有一個以上cpu時, 一個cpu執行一個執行緒時, 另一個cpu可以執行另一個執行緒,兩個執行緒互不搶佔cpu資源,可以同時進行
併發與並行的區別:
a 並行是指兩個或者多個事件在同一時刻發生,併發是兩個或多個事件在同一時間間隔內發生
並行和序列指的是任務的執行方式,序列指多個任務時,各個任務按順序執行,完成一個後才能進行下一個
並行是多個任務可以同時執行
同步 非同步 : 能否開啟新的執行緒,同步不能開啟新的執行緒,非同步可以
非同步是多個任務並行的前提條件