
1.1.3 jQuery与其他脚本类库的比较
jQuery并不是唯一的JavaScript库,除了jQuery还有很多优秀的JavaScript库,比如Propetype、Dojo,Ext、YUI、MooTools等。每款JavaScript库都有其自身的优点和缺点,要根据不同的使用场景进行选择。如表1-1所示的是几款流行的框架比较。
表1-1 脚本类库比较

注:因为类库都还在不断地发展,上表的内容也许存在偏差。 某些类库的功能空白,也许已开发完成或者已有相应的插件支持,所以此表格仅供参考。
如果仅看表格会发现Dojo和YUI是原生类库功能最强大的,尤其是Dojo还有IBM、Sun和EBA等大公司支持,功能可谓强大。包括笔者在内的很多人在最初选择脚本类库的时候也被其强大的功能所迷惑,选择了Dojo。但是Dojo目前不能算是一个成熟的脚本类库,尤其是不适合做网站的开发。网站(WebSite)和Web应用程序(Web App)最大的不同就是使用者,网站面向的是互联网用户,而Web应用程序通常指内部系统(如管理系统)或者特定的使用人群(如Google Docs面向办公人员)。结果就是在开始尝到了Dojo类库的甜头后,发现Dojo并不适合网站开发,对于网站开发来说Dojo太重了,就像全副武装的陆战队员在进行百米赛跑。而且Dojo本身的确存在着尚未修复的缺陷,比如无法跨域加载类库文件(最新开发版本已经修复,官方版本尚未发布)。
同样重量级的还有ExtJS和YUI。ExtJS最早叫做YUI-Ext,其实ExtJS是由于YUI的缺陷无法得到快速修复而另起门户的。由此可见YUI类库的显著问题就是更新缓慢,因为是官方的团队开发,它的优点是代码风格严谨。
对于互联网应用而言,轻量级的框架jQuery和MooTools都是很好的选择。MooTools是开源社区形式下发展起来的JS框架。笔者认为有别于jQuery最明显的特点就是使用方式:MooTools是完全地面向对象结构的脚本类库,在其代码组织风格、有无侵入等Web思想的理解,各个方面都呈现出少年新贵、武林新秀的姿态来。虽然目前的功能不是最强大的,但是都可以通过后期开发弥补。
但是在面临抉择的时候,就需要用到经济学的思维了。为了更好地权衡投入和产出的关系,需要考虑学习成本、文档的全面程度、是否易用、是否稳定等因素。这正是最后抛弃Dojo,转而投入jQuery怀抱的主要原因。jQuery上手简单,并且目前的核心已经稳定,效率也是所有类库中最优秀的。因为使用广泛,有丰富的学习资源,此外jQuery也是插件最多的脚本类库,它丰富的插件资源让我们总可以找到自己想要的功能插件而无须重新开发。所以综合考虑,jQuery仍是最佳选择!