1. 程式人生 > >AMD 與 CMD

AMD 與 CMD

  執行時機 依賴方式 載入方式  
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  並行是指兩個或者多個事件在同一時刻發生,併發是兩個或多個事件在同一時間間隔內發生

並行和序列指的是任務的執行方式,序列指多個任務時,各個任務按順序執行,完成一個後才能進行下一個

並行是多個任務可以同時執行

同步  非同步 : 能否開啟新的執行緒,同步不能開啟新的執行緒,非同步可以

非同步是多個任務並行的前提條件