参考链接
《Javascript模块化编程(二):AMD规范》——阮一峰
Javascript之AMD模块化规范
说明
现今通行的模块化规范有三种AMD、CMD和Commonjs(AMD和CMD是Commonjs衍生出来的模块化,Commonjs应该也是CMD)
服务器环境(CommonJs)
2009年,当nodejs被美国程序员Ryan Dah开发出来后,javascript也可以作为服务器端语言,开发服务器功能,但是为了解决服务器端的复杂性,开发Commonjs来使javascript模块化操作。
假定有一个数学模块math.js
1 var math=require("math");然后就可以调用它模块方法了
1 | var math=require("math"); |
浏览器环境(AMD)
1 | var math=require("math"); |
上面这段代码是Commonjs的模块化,但是很明显有一个缺点,可以看出需要先加载math这个模块,获取再调用add(),这样可能会浏览器出现卡死的情况,因为同步执行,js没有执行完无法继续加载页面,所以就使用到异步加载模块,AMD就是异步加载模块规范,待模块加载完成后,自动回调方法。require([module], callback);
1
2
3require(['math'],function(math){
math.add(2,3);
});
这样的话,就算模块未加载完成也不会造成页面假死
目前使用AMD规范是流行库,require.js和curl.js,异步模块化益于浏览器端