JavaScript模块规范:AMD、CMD和CommonJS
2016-11-16 18:46
681 查看
commonjs是用在服务器端的,同步的,如nodejs
amd, cmd是用在浏览器端的,异步的,如requirejs和seajs
其中,amd先提出,cmd是根据commonjs和amd基础上提出的。
AMD是"Asynchronous
Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。
后面的回调函数里面,如果有需要一栏前面的模块,则需要等到前面的模块加载完,如果不依赖前面的模块,则不需要
这样子的写法,看着和AngularJS的写法比较像...
math.add()与math模块加载不是同步的,浏览器不会发生假死。
假死--math模块的加载影响它后面语句的运行。
RequireJS是AMD规范的实现...而SeaJS是CMD的实现,二者有以下不同:
1、对于依赖的模块AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执行(根据写法不同,处理方式不通过)。
2、CMD推崇依赖就近,AMD推崇依赖前置
CommonJS
根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。
即是Node;
CommonJS 加载模块是同步的,所以只有加载完成才能执行后面的操作。像Node.js主要用于服务器的编程,加载的模块文件一般都已经存在本地硬盘,所以加载起来比较快,不用考虑异步加载的方式,所以CommonJS规范比较适用。但如果是浏览器环境,要从服务器加载模块,这是就必须采用异步模式。所以就有了
AMD CMD 解决方案。
amd, cmd是用在浏览器端的,异步的,如requirejs和seajs
其中,amd先提出,cmd是根据commonjs和amd基础上提出的。
AMD是"Asynchronous
Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。
后面的回调函数里面,如果有需要一栏前面的模块,则需要等到前面的模块加载完,如果不依赖前面的模块,则不需要
这样子的写法,看着和AngularJS的写法比较像...
require(['math'], function (math) { math.add(2, 3); });
math.add()与math模块加载不是同步的,浏览器不会发生假死。
假死--math模块的加载影响它后面语句的运行。
RequireJS是AMD规范的实现...而SeaJS是CMD的实现,二者有以下不同:
1、对于依赖的模块AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执行(根据写法不同,处理方式不通过)。
2、CMD推崇依赖就近,AMD推崇依赖前置
CommonJS
根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。
即是Node;
CommonJS 加载模块是同步的,所以只有加载完成才能执行后面的操作。像Node.js主要用于服务器的编程,加载的模块文件一般都已经存在本地硬盘,所以加载起来比较快,不用考虑异步加载的方式,所以CommonJS规范比较适用。但如果是浏览器环境,要从服务器加载模块,这是就必须采用异步模式。所以就有了
AMD CMD 解决方案。
相关文章推荐
- Javascript 模块规范 CommonJS ,AMD ,CMD
- JS中的模块规范(CommonJS,AMD,CMD)
- 理解JS中的模块规范(CommonJS,AMD,CMD)
- 该如何理解AMD ,CMD,CommonJS规范--javascript模块化加载学习总结
- javaScript模块规范、AMD、CMD
- [js模块规范]总结JS模块规范CommonJS,AMD,CMD区别
- 再谈 JS中的模块规范(CommonJS,AMD,CMD)来自玉伯的seajs分析
- 浅析JS中的模块规范(CommonJS,AMD,CMD)
- 浅析JS中的模块规范(CommonJS,AMD,CMD)
- 如何理解AMD ,CMD,CommonJS规范--javascript模块化加载学习总结
- 浅析JS模块规范:AMD,CMD,CommonJS
- 再谈 JS中的模块规范(CommonJS,AMD,CMD)来自玉伯的seajs分析
- 研究一下javascript的模块规范(CommonJs/AMD/CMD)
- 浅析JS中的模块规范(CommonJS,AMD,CMD)
- 该如何理解AMD ,CMD,CommonJS规范--javascript模块化加载学习总结
- javaScript模块规范、AMD、CMD
- JavaSript模块规范 - AMD规范与CMD规范介绍
- JavaSript模块规范 - AMD规范与CMD规范介绍 (转)
- JavaScript模块规范之AMD规范和CMD规范
- JavaSript模块规范 - AMD规范与CMD规范介绍