commandjs、AMD、CMD之间的故事

时间:2021-03-05 19:35:52

commandjs:同步加载,只运行一次,后面使用第一次加载时运行的结果(存于缓存中),用于服务器

AMD:define(id ?,dependencies ?,factory) 异步加载,用于浏览器,提前执行,依赖前置

CMD:延时执行,依赖就近

// CMD
define(function(require, exports, module) {
var a = require('./a')
a.doSomething()
// 省略代码
var b = require('./b') // 依赖就近原则
b.doSomething()
// ...
}) // AMD 推荐
define(['./a', './b'], function(a, b) { // 依赖必须前面写好
a.doSomething()
// 省略代码
b.doSomething()
...
})

参考:https://github.com/seajs/seajs/issues/242

https://github.com/amdjs/amdjs-api/wiki/AMD