CommonJs是服务端模块加载规范,同步
AMD,CMD为浏览器端的模块加载规范 主要实现有 requreJs,seaJs
requireJs一次统一加载
seaJs是懒加载
https://github.com/amdjs/amdjs-api/blob/master/AMD.md
异步模块(AMD)API为模块本身和其依赖项异步加载机制提供规范,这个特别适合基于浏览器应用环境在解决同步加载模块导致性能,使用,调试和跨域访问等方面问题
API定义
define() 函数
define(id?,dependenciesy,factory)
该函数是全局变量,id是字符串文本,可选,如果不指定,那么模块需要为相应的请求脚本定义一个默认的id,如果程序指定,那么这个id必须是唯一的
模块ids 能够用来区分被定义的模块,同时被依赖参数中被使用
模块标识是以斜杠分隔 的字符串
标识采用camelCase规范
模块标识可以不包含文件扩展名
模块标识可以用相对或顶级路径,顶级标识安装模块的根命名空间解析
相对标识根据引用它的相对模块路径来解析
dependencies
此参数定义依赖的模块id名称,数组格式,依赖的脚本必须先于factory函数执行前解析
并且依赖的模块在factory函数中有对应顺序的参数
factory函数可以是初始化模块的可执行函数或者一个对象,如果是函数只能被执行一次,如果是
一个对象,则该对象应该被赋予模块的导出值