AMD(Asynchronous Module Definition)即異步模塊化定義,是 RequireJS 在推廣過程中對模塊定義的規範化產出。
CMD(Common Moudle Definition)即通用模塊定義,是 SeaJS 在推廣過程中對模塊定義的規範化產出。
共同點:AMD和CMD都是 一種框架在推廣的過程中對模塊定義的規範化產出;而且它們都是異步加載模塊。
不同點:
1. RequireJS 在主文件裏是將所有的文件同時加載;然而 SeaJS 強調一個文件一個模塊。
2. AMD推崇依賴前置,CMD推崇依賴就近。
3. AMD和CMD對依賴模塊的執行時機有所不同。
AMD加載完模塊後,就立馬執行該模塊;CMD加載完模塊後不會立即執行,而是等遇到require語句的時候再執行。
4. AMD的API默認是一個當多個用,CMD的API嚴格區分,推崇職責單一。
各自的優點:AMD用戶體驗好,因爲模塊提前執行了;CMD性能好,因爲只有用戶需要的時候才執行。
參考:
END