<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="RequireJS和SeaJS区别？AMD 和 CMD 的区别有哪些？CommonJS Modules" id="card1">
<p> 游客</p><p>
标题:RequireJS和SeaJS区别？AMD 和 CMD 的区别有哪些？CommonJS Modules<br/>
正文:<br/>
模块化开发已经是大势所趋，看到玉伯在介绍seajs和requirejs时，说“RequireJS 遵循的是 AMD（异步模块定义）规范，SeaJS 遵循的是 CMD （通用模块定义）规范”。<br/>AMD 规范在这里：https://github.com/amdjs/amdjs-api/wiki/AMD<br/>CMD 规范在这里：https://github.com/seajs/seajs/issues/242<br/><br/>AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。<br/>CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。<br/>类似的还有 CommonJS Modules/2.0 规范，是 BravoJS 在推广过程中对模块定义的规范化产出。<br/>还有不少⋯⋯<br/><br/>这些规范的目的都是为了 JavaScript 的模块化开发，特别是在浏览器端的。<br/>目前这些规范的实现都能达成浏览器端模块化开发的目的。<br/><br/>区别：<br/><br/>1. 对于依赖的模块，AMD 是提前执行，CMD 是延迟执行。不过 RequireJS 从 2.0 开始，也改成可以延迟执行（根据写法不同，处理方式不同）。CMD 推崇 as lazy as possible.<br/><br/>2. CMD 推崇依赖就近，AMD 推崇依赖前置。看代码：<br/><br/>// CMD<br/>define(function(require, exports, module) {<br/>var a = require('./a')<br/>a.doSomething()<br/>// 此处略去 100 行<br/>var b = require('./b') // 依赖可以就近书写<br/>b.doSomething()<br/>// ... <br/>})<br/><br/>// AMD 默认推荐的是<br/>define(['./a', './b'], function(a, b) { // 依赖必须一开始就写好<br/>a.doSomething()<br/>// 此处略去 100 行<br/>b.doSomething()<br/>...<br/>}) <br/><br/>虽然 AMD 也<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1055&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1055&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1055&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1055&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1055&amp;Page=6">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1055">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1055">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>