多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
前后端JavaScript分别搁置在HTTP的两端,它们扮演的角色并不同。浏览器的JavaScript需要经历从同一个服务器端分发到多个客户端执行,而服务器端的JavaScript则是相同的代码需要多次执行。前者的瓶颈在于带宽,后者的瓶颈在于CPU和内存等资源。前者需要通过网络加载代码,后者从磁盘中加载,两者的加载速度不在一个数量级上。 纵观Node的模块引入过程,几乎全都是同步的。尽管与Node强调异步的行为有些相反,但它是合理的。但是如果前端模块也采用同步的方式来引入,将会在用户体验上造成很大问题。UI在初始化过程中需要话费很多时间来等待脚本加载完成。 鉴于网络原因,CommonJS为后端JavaScript制定的规范并不完全适合前端的应用场景。经过一段争执之后,AMD规范最终在前端应用场景中胜出。它的全称是 Asynchronous Module Definition,即“异步模块定义”。详见 [https://github.com/amdjs/amdjs-api/wiki/AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) 。除此之外,还有玉伯定义的CMD规范。