AMD(Asynchronous Module Definition)即异步模块化定义,是 RequireJS 在推广过程中对模块定义的规范化产出。
CMD(Common Moudle Definition)即通用模块定义,是 SeaJS 在推广过程中对模块定义的规范化产出。
共同点:AMD和CMD都是 一种框架在推广的过程中对模块定义的规范化产出;而且它们都是异步加载模块。
不同点:
1. RequireJS 在主文件里是将所有的文件同时加载;然而 SeaJS 强调一个文件一个模块。
2. AMD推崇依赖前置,CMD推崇依赖就近。
3. AMD和CMD对依赖模块的执行时机有所不同。
AMD加载完模块后,就立马执行该模块;CMD加载完模块后不会立即执行,而是等遇到require语句的时候再执行。
4. AMD的API默认是一个当多个用,CMD的API严格区分,推崇职责单一。
各自的优点:AMD用户体验好,因为模块提前执行了;CMD性能好,因为只有用户需要的时候才执行。
参考:
END