JavaScript和JavaScript库
随着Web 2.0的兴起,JavaScript越来越受到重视,一系列JavaScript库也蓬勃发展起来。从早期的Prototype、Dojo到2006年的jQuery,再到2007年的Ext JS,互联网正在掀起一场JavaScript风暴。jQuery以其独特优雅的姿态,始终处于这场风暴的中心,受到越来越多的人的追捧。
一、JavaScript简介
在正式介绍jQuery之前,有必要先了解一下JavaScript。
JavaScript是Netscape公司开发的一种脚本语言(scripting language)。JavaScript的出现使得网页和用户之间实现了一种实时的、动态的和交互的关系,使网页包含更多活跃的元素和更加精彩的内容。JavaScript自身存在3个弊端,即复杂的文档对象模型(DOM),不一致的浏览器实现和缺乏便捷的开发、调试工具。
正当JavaScript从开发者的视线中渐渐隐去时,一种新型的基于JavaScript的Web技术——Ajax(Asynchronous JavaScript And XML,异步的JavaScript和XML)诞生了。而使人们真正认识到Ajax技术的强大的导火索是Google公司推出的一系列新型Web应用,例如Gmail、Google Suggest和Google Map等。互联网中基于JavaScript的应用也越来越多,使JavaScript不再是一种仅仅用于制作Web页面的简单脚本。
二、JavaScript库作用及对比
为了简化JavaScript的开发,一些JavaScript库诞生了。JavaScript库封装了很多预定义的对象和实用函数,能帮助使用者轻松建立有高难度交互的Web 2.0特性的富客户端页面,并且兼容各大浏览器。下面是目前几种流行的JavaScript库的介绍和对比。
Prototype(http://www.prototypejs.org/)
Prototype是最早成型的JavaScript库之一,对JavaScript的内置对象(例如String对象、Array对象等)做了大量的扩展。现在还有很多项目使用Prototype。Prototype可以看做是把很多好的、有用的JavaScript的方法组合在一起而形成的JavaScript库。使用者可以在需要的时候随时将其中的几段代码抽出来放进自己的脚本里。但是由于Prototype成型年代早,从整体上对于面向对象的编程思想把握不是很到位,导致了其结构的松散。不过现在Prototype也在慢慢改进。
Dojo的强大之处在于Dojo提供了很多其他JavaScript库所没有提供的功能。例如离线存储的API、生成图标的组件、基于SVG/VML的矢量图形库和Comet支持等等。Dojo是一款非常适合企业级应用的JavaScript库,并且得到了IBM、SUN和BEA等一些大公司的支持。但是Dojo的缺点也是很明显的:学习曲线陡,文档不齐全,最严重的就是API不稳定,每次升级都可能导致已有的程序失效。但是自从Dojo的1.0.0版出现以后,情况有所好转,Dojo还是一个很有发展潜力的库。
YUI(http://developer.yahoo.com/yui/)
YUI(Yahoo!UI.The Yahoo! User Interface Library),是由Yahoo公司开发的一套完备的、扩展性良好的富交互网页程序工具集。YUI封装了一系列比较丰富的功能,例如DOM操作和Ajax应用等,同时还包括了几个核心的CSS文件。该库本身文档极其完备,代码编写也非常规范。
Ext JS(http://www.extjs.com/)
Ext JS常简称为Ext,原本是对YUI的一个扩展,主要用于创建前端用户界面,如今已经发展到可以利用包括jQuery在内的多种JavaScript框架作为基础库,而Ext作为界面的扩展库来使用。Ext可以用来开发富有华丽外观的富客户端应用,能使B/S应用更加具有活力。但是由于Ext侧重于界面,本身比较臃肿,所以使用之前请先权衡利弊。另外,需要注意的是,Ext并非完全免费,如果用于商业用途,需要付费获得授权许可。
MooTools(http://mootools.net)
MooTools是一套轻量、简洁、模块化和面向对象的JavaScript框架。MooTools的语法几乎跟Prototype一样,但却提供了更为强大的功能、更好的扩展性和兼容性。其模块化思想非常优秀,核心代码大小只有8KB。无论用到哪个模块都可即时导入,即使是完整版大小也不超过160KB。MooTools完全彻底的面向对象的编程思想,语法简洁直观,文档完善,是一个
非常不错的JavaScript库。
jQuery(http://jquery.com)
本教程的重点jQuery同样是一个轻量级的库,拥有强大的选择器,出色的DOM操作,可靠的事件处理、完善的兼容性和链式操作等功能。这些优点吸引了一批批的JavaScript开发者去学习它、研究它。
总之,每个JavaScript库都有各自的优点和缺点,同时也有各自的支持者和反对者。
自从jQuery诞生那天起,其关注度就一直在稳步上升,jQuery已经逐渐从其他JavaScript库中脱颖而出,成为Web开发人员的最佳选择。