AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
AMD也采用require()语句加载模块,但是不同于CommonJS,它要求两个参数:
require([module], callback);
其中,module表示依赖的模板的地址,用数组表示,模板地址要用引号引起来,地址的baseUrl用根据配置文件requirejs的config来确定。
callback是回调函数,callback里面的参数表示这个依赖的模板。
示例:
define( ['jQuery', 'dialog'], function($, Dialog){
$('.modal').show();
Dialog.open();
});
Dialog.open()与'dialog'模块加载不是同步的,浏览器不会发生假死。所以很显然,AMD比较适合浏览器环境。
实现AMD的库有`RequireJS` 、`curl` 、`Dojo` 等。