CMD和AMD俩者之间的区别
AMD和CMD最大的区别是对依赖模块的执行时机处理不同
-
CMD和AMD都是CommonJS延伸而来的,CommonJS是随着node的出现而出现的,它是一个规范,用于定义后台语言,它不仅仅是定义模块,还能够定义支持服务器,操作文件等。
-
由于CommonJS加载模块是同步的,,需要考虑阻塞问题,基于这个原因迎来了CMD和AMD
- AMD 异步加载模块 定义 requirejs (模块加载需要前置)
- requirejs主要解决俩个问题(1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器
2、js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长 )
- requirejs主要解决俩个问题(1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器
- CMD 懒加载,定义了sea.js (用的时候加载)
- UMD 通用模块定义
- 为的就是能让模块代码更兼容各个模块加载器
- AMD 异步加载模块 定义 requirejs (模块加载需要前置)
-
CommonJs是一个规范,AMD和CMD也是一个规范,requirejs和seajs是一个实现。
-
AMD
define (["./a","./b"],function(){
if(true){
a.dosomething();
}else{
b.dosomething();
}
});
- CMD
define (["./a","./b"],function(){
if(true){
a.dosomething();
}else{
b.dosomething();
}
});