从demo.html 引入一个入口c.js, c.js require-b.js , b.js require - a.js
代码如下:
c module
define(function(require, exports, module) {
console.log("hello module c");
require('b');
console.log("c finished");
});
define(function(require, exports, module) {
console.log("hello module b")
var a = require('a');
console.log("b finished")
});
a module
define(function() {
console.log("hello module a")
});
requriejs 的 html代码:
seajs和requirejs的区别
执行结果:
==============================================
seajs的html代码:
seajs和requirejs的区别
执行结果:
案例代码:
c.js模块
define(['b'],function(require,exports,module){
console.log("hello module c");
console.log("c finished");
});
b.js模块
define(['a'],function(require,exports,module) {
console.log("hello module b")
console.log("b finished")
});
a.js模块
define(['b'],function(require,exports,module) {
console.log("hello module a")
});
执行结果:
seajs执行结果:
总结: 在define书写中A:requirejs 加载了就执行,所以requirejs是预执行(在define中预先执行所有require依赖的js),RequireJS的做法是并行加载所有依赖的模块, 并完成解析后, 再开始执行其他代码, 因此执行结果只会"停顿"1次, 完成整个过程是会比SeaJS要快. 预执行
B:seajs只是纯粹的加载依赖的文件,不执行就连console都不执行就是纯粹的“加载”,SeaJS一样是并行加载所有依赖的模块, 但不会立即执行模块, 等到真正需要(require)的时候才开始解析, 这里耗费了时间, 因为这个特例中的模块巨大, 因此造成"停顿"2次的现象, 这就是我所说的SeaJS中的"懒执行".
define(function(require,exports,module){
require('b');
require('a');
console.log("hello module c");
console.log("c finished");
});
执行结果都是一样
3、取别名时requirejs默认舍掉.js的后缀
4、 打包方法
gulp 打包seajs
requirejs 打包