如果你问当前最流行的Javascript框架是什么,答案是jQuery;如果你问当前最流行的Javascript工具包是什么,结果仍然是jQuery。具有讽刺意味的是,jQuery实际上并不能称作一个框架,它只是一个工具包;dojo更像一个接近完整的框架,却自称为工具包。但无论如何,这两年最流行的Javascript工具包仍然是jQuery,而dojo的份额和排名似乎一直在往下掉。仅从开发工具的支持而言,jQuery获得了CS5.5(这是一种开发工具吗?)和VisualStudio 2010(哇!)的支持,而Dojo时至今日,仍没有一款出色有名的开发工具支持它(随着Aptana 3.0的release,这一情况有所改善。未在该IDE下做过jQuery和dojo支持的比较)。那么,为什么Dojo反而可能可为下一个五年的Number one?
原因是jQuery的流行正好说明了它的局限。看看开发工具CS5.5对它的支持。传统上讲CS是一款HTML页面开发工具,而并不是一个脚本语言开发工具。当前javascript在HTML中的应用越来越重要,但并未颠覆HTML的生成方式。一个经典的网页仍然由PHP,JSP或者其它的后台技术来生成,并使用javascript来增强用户的交互性--一些对用户交互特别重视的地方,仍然使用了Flash技术。工作流仍然在后台由页面的导航来完成,数据流仍然主要由表单来完成。Ajax仍然只是用来做改进用户体验的一些小把戏,比如即时的拼写校验。
然而随着HTML5和其它一些重要技术的降临,事情将会发生根本的改变。HTML5增加了二维图形处理,音视频处理标签以及本地存储--浏览器则增强了javascript引擎的处理能力,图形渲染的硬件加速,这一切使得HTML有可能成为下一代的桌面应用程序界面技术--实际上Windows 8已经这样做了,一些智能手机也这样做了。未来的应用程序有可能是这样的框架,HTML+CSS+Javascript作为表现层技术,通过AJAX与后台应用程序交换数据。如果后台应用程序运行于远端,则表现为一个internet应用;如果后台应用程序运行于本地,可以直接操作本地资源,则整个系统表现为一个桌面应用程序。
这种分离将极大地加重前端的工作份量,从而也需要更强有力的框架支持。而Dojo正提供了这样的支持(仅列出其它框架不具备的功能):
- 优秀地面向对象设计
dojo提供了dojo.declare来声明一个类以及子类和父类的继承关系,并提供了名字空间,构造函数,包含(dojo.require)。这些概念非常接近传统的OOP语言,比如java。没有名字空间和包的概念,构建一个大型应用是几乎不可能的事情。
- 模块系统
模块系统支持动态延迟加载,随着1.6版本的发行,模块依赖上AMD协议也得到支持。模块构建系统允许只打包必要的文件。作者曾经通过打包构建,将开发时的250左右个js/html/css文件打包成小于70个文件。支持CDN和cross-domain加载。没有出色的模块系统,构建一个复杂的大型应用程序几乎是不可能完成的任务。
原文链接:https://www.f2er.com/dojo/291640.html