最近看了一些关于AMD和CMD的文章,感觉还是有点意思,特意简洁的整理一下:
一、AMD推崇的事依赖前置,在定义模块的时候就去声明依赖的模块
二、CMD推荐依赖就近,只有在需要的时候再去导入某个模块
AMD和CMD的最大的区别在于执行的时间不同,即模块执行的具体的时间不同。
首先,两者的模块都是被异步的加载到程序中,但是在AMD的加载过程中,所有的模块都会在加载并且执行之后,放到require的回调函数中,然后在执行主逻辑代码。具体的模块的执行顺序和书写顺序不一定相同,主要取决于网络的速度,哪个先下载下来,哪个就先执行,当所有的模块都加载之后,就会执行主程序。但是对于CMD来说,他会先加载所有的模块,并不执行。加载之后就会进入主程序,当遇到需要require的模块之后,才开始执行对应的模块。模块执行成功后,在执行主程序代码。这样CMD的某块代码的执行顺序和书写顺序是完全一致的。
对于AMD来说,所有的模块都提前执行,因此在使用的过程中不会出现延迟,因此带给用户的体验是比较好的。但是CMD的性能较好,因为只有用户需要的时候 才会去执行相应的模块。