前端模块化,AMD与CMD的区别】的更多相关文章

知识点1:AMD/CMD/CommonJs是JS模块化开发的标准,目前对应的实现是RequireJs/SeaJs/nodeJs. 知识点2:CommonJs主要针对服务端,AMD/CMD主要针对浏览器端,所以最容易混淆的是AMD/CMD.(顺便提一下,针对服务器端和针对浏览器端有什么本质的区别呢?服务器端一般采用同步加载文件,也就是说需要某个模块,服务器端便停下来,等待它加载再执行.而浏览器端要保证效率,需要采用异步加载,这就需要一个预处理,提前将所需要的模块文件并行加载好.) 知识点3 : A…
在说AMD 和 CMD 的区别之前,先说明commonjs,它的回调和amd.cmd的不同于:commomjs加载完了所有模块,才执行回调amd和cmd是加载对应的模块,就可以执行回调中对应的代码 1.从官方推荐的写法上面得出:CMD ----- 依赖就近Js代码 //CMD define(function(require,exports,module){ var a = require('./a'); a.doSomthing(); }); AMD ----- 依赖前置 Js代码 //AMD…
最近在研究cmd和amd,在网上看到一篇不错的文章,整理下看看. 在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可:如今CPU.浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀 这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,JavaS…
根据玉伯等人在知乎上的回答整理.整理中... AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD CMD 规范在这里:https://github.com/seajs/seajs/issues/242 背景 要想将JavaScript提升到和其他编程语言一个级别的编程体验,包管理是一个必须之物. 早期如labjs首先解决的是js文件加载管理的问题. LABjs 的核心是 LAB(Loading and Blocking):Loading 指…
看到玉伯在介绍seajs和requirejs时,说“RequireJS 遵循的是 AMD(异步模块定义)规范,SeaJS 遵循的是 CMD (通用模块定义)规范”. 能否详细(举例)说明下这个2个规范和实现的机制呢? 2 条评论 分享   查看全部 7 个回答 玉伯,因上努力,果上随缘. 刘宗源.yi22.杨斌 等人赞同 AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMDCMD 规范在这里:https://github.com/seajs/…
AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD CMD 规范在这里:https://github.com/seajs/seajs/issues/242 AMD 是 RequireJS 在推广过程中对模块定义的规范化产出. CMD 是 SeaJS 在推广过程中对模块定义的规范化产出. 类似的还有 CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出.还有不少⋯⋯ 这些规范的目的都是为了 J…
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出.CMD 是 SeaJS 在推广过程中对模块定义的规范化产出.类似的还有 CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出.还有不少⋯⋯ 这些规范的目的都是为了 JavaScript 的模块化开发,特别是在浏览器端的.目前这些规范的实现都能达成浏览器端模块化开发的目的. 区别: 1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行.不过 RequireJS 从 2.0…
AMD CMD ES6模块化 各个模块化规范对比理解 一.AMD 在上一篇js模块化入门与commonjs解析与应用中详细的解析了关于commonjs模块化规范,commonjs采用的用同步加载方式,这导致它并不是浏览器理想的模块化规范.因为浏览器需要到服务器加载文件,请求事件远远大于本机读取的时间,如果文件较多,网络迟缓就会导致页面瘫痪,所以浏览器更希望能够实现异步加载的方式. AMD规范则是异步加载模块,用于指定回调函数.等模块加载完成以后即可调用回调函数.AMD规范得意的产出就是requi…
运行和编译的概念 编译包括编译和链接两步. 编译,把源代码翻译成机器能识别的代码或者某个中间状态的语言. 比如java只有JVM识别的字节码,C#中只有CLR能识别的MSIL.还简单的作一些比如检查有没有粗心写错啥关键字了啊.有啥词法分析,语法分析之类的过程. 链接,是把编译生成的二进制文件,组合成为一个系统可以执行的可执行文件. 运行: 把编译出来的可执行文件代码在系统中执行的过程,此时被装载到内存中. (代码保存在磁盘上没装入内存之前是个死家伙.只有跑到内存中才变成活的). 运行时类型检查就…
1.cmd define(function(require,export){ var b = 1; var a = require('./a'); a.dosomething(); }); 2.amd define(['./a'],function(a){ a.dosomething(); });…