首页 > 代码库 > AMD/CMD/CommonJs的区别
AMD/CMD/CommonJs的区别
AMD/CMD/CommonJs是js模块化开发的标准,目前对应的实现是RequireJs/SeaJs/nodeJs.
CommonJs 主要针对服务器端,AMD/CMD 主要针对浏览器端。
服务器端和浏览器端有什么区别呢?
服务器端一般采用同步加载文件,也就是说需要某个模块,服务器便停下来,等待它加载再执行,而浏览器要保证效率,需要采用异步加载,这就需要一个预处理,提前将说需要的模块并行加载好。
AMD和CMD的区别,虽然都是并行加载文件,但还是有所区别,AMD是预加载,在并行加载js文件同时,还会解析执行该模块(因为还需要执行,所以在加载某模块前,这个模块的依赖模块必须先加载完),而CMD是懒加载,虽然会一开始就并行加载js文件,但是不会执行,而是在需要的时候才执行。
ADM是依赖前置,CMD是依赖就近
AMD 和CMD 的优缺点
AMD: 优点:加载速度快,因为并行解析,所以同一时间可以解析多个文件
缺点:并行加载,异步处理,加载顺序不一定,可能会造成一些困扰。
CMD:优点: 只有使用的时候才解析执行js文件,因此,每个js文件的执行顺序是可控的。
缺点:因为每个文件是同步执行,因此时间是所有文件执行时间之和。
如何使用ADM/CMD/CommonJs ?
nodejs是CommonJs的实现,所以使用node就可以,也不用引入其他包。AMD则是通过script 标签引入RequireJs,CMD 则是script标签引入Seajs
AMD/CMD/CommonJs的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。