AMD:異步模塊定義,是一個瀏覽器端模塊化開發的規范,由于不是原生JS支持,使用AMD規范需要用到require.js庫
require.js注意解決兩個問題
1、多個js文件可能有依賴關系,被依賴的文件需要早于依賴它的文件加載到瀏覽器
2、js加載的時候瀏覽器會停止頁面渲染,加載文件越多,頁面失去響應的時間就越長
CMD:CMD規范是國內發展出來的,使用CMD需要使用到Sea.js,sea.js需要解決的問題和require一樣,只不過模塊加載時機上有所不同
Sea.js推崇一個模塊一個文件
AMD屬于依賴前置,提前把依賴關系都設定好,js運行時很快就能知道依賴模塊是誰,立即加載
CMD屬于懶加載,需要把模塊變成字符串解析一遍才知道依賴了哪些模塊
AMD用戶體驗好,因為沒有延遲,依賴模塊提前就執行了,CMD性能好,因為只有用戶需要時才執行