AMD/CMD/CommonJS到底是什么?
一、三者相同点
同为JS模块化开发的标准。
CommonsJS---nodeJs---服务端规范
AMD---RequireJs---浏览器端规范,老大
CMD---SeaJS---浏览器端规范,小三
二、AMD和CMD区别
AMD:
- 预加载,并行加载JS时,还会解析改模块,所以要将需要的模块提前加载出来。
- 提前执行,依赖前置
- 优点:加载快速,并行解析,同时可以解析多个文件
- 缺点:并行加载,一步处理,加载顺序不确定,容易引起bug
CMD:
- 懒加载,虽然开始会并行加载JS,但是不会执行,而是在需要的时候执行。
- 延后执行,依赖就近
- 优点:js执行文件顺序是可控的
- 缺点:执行等待时间会累加,多文件时最明显