首先介绍一下dojo的特性:
1、Dojo是一个符合AMD规范的企业级框架(dojo是一个重量级框架)
2、Dojo全面支持异步加载JS机制(即:支持通过require异步加载JS模块,通过define定义符合AMD规范的标准JS直接对象(模块))
3、Dojo不仅提供了针对javascript的语句优化(dojo核心语法与jquery完全不同,需要额外学习),还提供了所有UI组件
4、Dojo支持IE6以上浏览器,Dojo帮助我们处理了浏览器兼容性问题,所以不需要担心 Web 页面是否在某些浏览器中可用
5、Dojo 提供打包工具可以优化 JavaScript 代码,并且只生成部署应用程序所需的最小 Dojo 包集合
dojo与jquery相比优点:
1、dojo支持IE6以上的浏览器,jquery不再支持IE9以下浏览器(国内IE9以下浏览器份额依旧占据半壁江山)
2、dojo不仅提供jquery的JS优化操作还提供UI组件
3、dojo中所有功能都基于异步JS实现,jquery需要借助第三方requireJS等异步加载框架实现异步加载JS。
jquery相比dojo优点:
1、jquery很轻量级,而dojo很重,dojo的压缩包都在36M以上。
2、jquery灵活方便,jquery只提供js的优化操作,本身不提供UI组件,开发者可以采用任意第三方UI框架进行实现
注:阐述JS异步加载机制,举个例子:我在应用中只需要用到jquery的ajax方法,却需要把整个jquery.js包加载才能使用,而异步加载机制则是单独把ajax方法封装为一个JS模块,只在用到的时候require一个ajax模块,而不是一股脑把所有JS加载进浏览器。
总结:
dojo是重量级框架,适合企业级开发,并且通过异步JS模块加载机制解决了企业级开发中大量加载JS导致的浏览器崩溃问题,本身提供了UI组件完全可以满足所有需求,不在需要其他第三方框架,为企业级开发提供了全套的解决方案(有了dojo,不再需要其他框架)。
jquery很灵活很轻量级,适合轻量级的web应用开发,结合requireJS也可实现异步加载JS模块,浏览器兼容性需要开发者自行调校。