实现Javascript模块化,固然很重要,但是怎样才能实现国际上都能认可的模块化呢?模块化编程规范随应运而生。
目前Javascript模块化规范主要有两种:CommonJS和AMD。
CommonJS:
09年,美国程序开发人员Ryan Dahl创造了node.js项目,将JS运用于服务器端。
由于后台服务端的业务比较复杂,如果没有模块化编程规范,后台维护和开发将变得异常艰难。
node.js的模块系统,就是参照CommonJS规范实现的。在CommonJS中,require(),用于加载模块。
require()只能同步加载,所以在浏览器端由于网速的限制,会造成浏览器假死,所以这种规范的局限性,只能应用于服务器端。
AMD:
AMD是“Asynchronous Module Definition”的缩写,中文解释“异步模块定义”。这种规范,采用异步加载模块,和后台服务器多线程有些相似。
这种规范,涉及的所有模块,都会有一个回调函数的定义。可以理解为,等加载完成后,回调函数才会执行。
Eg:
require([module],callback);
第一个参数[module],是一个数组,成员就是所需要加载的模块;第二参数[callback],则是加载成功后的回调函数。
目前实现AMD规范的库:require.js和curl.js。