AMD 叫做异步板块定义规范(Asynchronous Module Definition),它是 CommonJs 板块化规范的超集,但是运行于浏览器之上的,关于板块化的好处我们在 CommonJs 篇文章中我们理解过。AMD 的特点就和它的名字一样,板块的加载过程是异步的,它大大的利用了浏览器的并发请求能力,让板块的依赖过程的阻塞变得更少了。requireJs 就是 AMD 板块化规范的实现。
AMD 作为一个规范,只要定义其语法 API,而不关心其实现。AMD 规范简单到只有一个 API,即 define 函数:
define(id?, dependencies?, factory);具体用法如下:
// moudle-a.jsdefine('moudleA', function() { return { a: 1 }});// moudle-b.jsdefine(['moudleA'], function(ma) { var b = ma.a + 2; return { b: b }});它看起来似乎和 CMD 差不多,不过在实现上还是有肯定的差异,它们各有优缺点,我们未来会专门对这些板块化规范做比照。