AMD与CMD区别
AMD:异步模块定义,是一个浏览器端模块化开发的规范,由于不是原生JS支持,使用AMD规范需要用到require.js库
require.js注意解决两个问题
1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器
2、js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应的时间就越长
CMD:CMD规范是国内发展出来的,使用CMD需要使用到Sea.js,sea.js需要解决的问题和require一样,只不过模块加载时机上有所不同
Sea.js推崇一个模块一个文件
AMD属于依赖前置,提前把依赖关系都设定好,js运行时很快就能知道依赖模块是谁,立即加载
CMD属于懒加载,需要把模块变成字符串解析一遍才知道依赖了哪些模块
AMD用户体验好,因为没有延迟,依赖模块提前就执行了,CMD性能好,因为只有用户需要时才执行