admin管理员组

文章数量:1530063

最主要的是:

  • 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 是一个对象,上面存储了与当前模块相关联的一些属性和方法

本文标签: 区别amdcmd