怎么看AMD vs.Commonjs?

共同点:两者都是为了实现模块化编程而出现的。对于大型项目,参与人数多,代码逻辑复杂,是最适合使用模块化的思想来完成整个项目的。同时采用这种思想也很便于对整个项目进行管控。

区别

CommonJS:

● 适用于服务器端,Node.js的执行环境就是采用CommonJS模式

● 同步加载不同模块文件。之所以采用同步加载方式,是因为模块文件都存放在服务器的各个硬盘上,实际的加载时间就是硬盘的文件读取时间

AMD,Asynchronous Module Definition,即异步模块定义

● 适用于浏览器端的一种模块加载方式

● AMD采用的是异步加载方式(js中最典型的异步例子就是ajax)

● 浏览器需要使用的js文件(第一次加载,忽略缓存)都存放在服务器端,从服务器端加载文件到浏览器是受网速等各种环境因素的影响的,如果采用同步加载方式,一旦js文件加载受阻,后续在排队等待执行的js语句将执行出错,会导致页面的‘假死’,用户无法使用一些交互。所以在浏览器端是无法使用CommonJS的模式的。

目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js

下面程序输出的结果,以及改进的方法

for( var i=0;i<3;i++ ){
   setTimeout(function(){console.log(i)},0);  //3次3
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值