最主要的是:

  • AMD是预加载,CMD是懒加载。AMD是提前执行,CMD是延迟执行。
  • amd (在对应的加载之前导入),cmd(在用的时候导入)。

以下为相关补充:

AMD

AMD 即Asynchronous Module Definition,中文名是异步模块定义的意思。

它是一个在浏览器端模块化开发的规范由于不是JavaScript原生支持,使用AMD规范进行页面开发需要用到对应的库函数,也就是大名鼎鼎RequireJS,实际上AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出。

requireJS主要解决两个问题:
1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器
2、js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长

CMD

CMD 即Common Module Definition通用模块定义,CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJS,SeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同。

因为CMD推崇一个文件一个模块,所以经常就用文件名作为模块id

CMD推崇依赖就近,所以一般不在define的参数中写依赖,在factory中写。

factory是一个函数,有三个参数,function(require, exports, module)

1.require 是一个方法,接受 模块标识 作为唯一参数,用来获取其他模块提供的接口:require(id)

2.exports 是一个对象,用来向外提供模块接口

3.module 是一个对象,上面存储了与当前模块相关联的一些属性和方法

【AMD和CMD的区别】相关推荐

  1. AMD 和 CMD 的区别有哪些? (玉伯)

    AMD 和 CMD 的区别有哪些? 作者:玉伯 链接:https://www.zhihu.com/question/20351507/answer/14859415 来源:知乎 AMD 规范在这里:h ...

  2. 前端模块化,AMD与CMD的区别

    在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可:如今CPU.浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得 ...

  3. AMD和CMD的区别

    他们两者的共同点就是都是一种框架在推广的过程中对模块定义的规范产出:而且他们都是异步加载模块. AMD即Asynchronous Module Definition,翻译过来就是异步模块化定义,是一个 ...

  4. AMD和CMD的区别,转载玉伯在知乎上的回答。

    AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD CMD 规范在这里:https://github.com/seajs/seajs/issue ...

  5. 前端开发 AMD 和 CMD 的规范区别

    AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD CMD 规范在这里:https://github.com/seajs/seajs/issue ...

  6. JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules

    随着前端js代码复杂度的提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化. 这篇文章还是希望能给大家一 ...

  7. 理解AMD ,CMD,CommonJS规范

    https://blog.csdn.net/xcymorningsun/article/details/52709608 理解AMD ,CMD,CommonJS规范 2016年09月30日 10:33 ...

  8. 模块化 AMD与CMD 规范

    JavaSript模块规范 - AMD规范与CMD规范介绍 2014-02-19 13:12:01 分类: JavaScript JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单 ...

  9. CommonJS,AMD,CMD区别 - 郑星阳 - ITeye博客

    CommonJS,AMD,CMD区别 博客分类: seajs和requirejs JavaScript zccst转载 学得比较晕,再次看commonjs,amd, cmd时好像还是没完全弄清楚,今天 ...

最新文章

  1. Go 语言 Excel
  2. php generator for mysql中文版
  3. php+mysql+pdo连接数据库
  4. java html提取_2020年全新Java学习路线,含配套资料,更易上手 - 打不过就跑吧
  5. 360浏览器清除缓存_手机微信内置浏览器缓存清理指南
  6. DOM节点的插入、替换、克隆及删除
  7. c/c++教程 - 1.7 数组 一维数组 二维数组
  8. shell脚本计算任意个数的加减乘除
  9. 不好使地机器学习预测双色球蓝球号码
  10. 计算机里不显示硬盘图标,Win7不显示硬盘图标怎么办?不显示硬盘图标修复方法...
  11. 微软中国招聘职位描述(英文)
  12. 关于CPU架构之总结
  13. CCCC选拔赛赛后总结
  14. Java泛型详解:<T>和Class<T>的使用。泛型类,泛型方法的详细使用实例
  15. 火狐网页访问https提示安全连接失败
  16. ALE重新授权,简译笔记
  17. 刷脸支付:5G时代下的新型支付模式
  18. 递增序列-2019年蓝桥杯国赛填空题题目答案及分析
  19. POJ - 4048 Chinese Repeating Crossbow 暴力枚举+线段香蕉?
  20. 使用Acrobat时,怎样使其默认页面显示方式为启用滚动

热门文章

  1. Python练手小项目(6)随机取红黑球并计算概率
  2. 苹果iPhone 12系列发布会:四款新机亮相均支持5G
  3. 现在Web前端工程师年薪区间是多少?
  4. 使用PHP实现密保卡功能
  5. 【python】eclipse+Pydev中import报错Unused import解决方案
  6. 宝塔面板修改默认的放行端口8888为8001并且生效
  7. matlab 控制命令,Matlab绘图基本控制命令
  8. 如何在Hyper-V、Virtual PC等虚拟机中使用USB设备
  9. 微信域名防封系统-微信域名预拦截预防封
  10. 潮趣真无线蓝牙耳机,南卡小音舱真无线耳机评测来啦!