框架比较
表1对本文中讨论的五个框架提供详细的比较
Prototype | jQuery | YUI | ExtJS | MooTools | |
---|---|---|---|---|---|
Latest Version | 1.6.1 | 1.4.1 | 3.00 | 3.1 | 1.2.4 |
License | MIT | MIT & GPL | BSD | Commercial & GPL v3 | MIT |
Browser Compatibility | |||||
IE Support | 6.0+ | 6.0+ | 6.0+ | 6.0+ | 6.0+ |
Firefox Support | 1.5+ | 2.0+ | 3.0+ | 1.5+ | 2.0+ |
Safari Support | 2.0.4+ | 3.0+ | 4.0+ | 3.0+ | 2.0+ |
Opera Support | 9.25+ | 9.0+ | 10.0+ | 9.0+ | 9.0+ |
Chrome Support | 1.0+ | 1.0+ | Not verified | Not verified | Not verified |
Core Features | |||||
Ajax Support | Yes | Yes | Yes | Yes | Yes |
DOM Manipulation | Yes | Yes | Yes | Yes | Yes |
DOM Traversal | Yes | Yes | Yes | Yes | Yes |
Event Handling | Yes | Yes | Yes | Yes | Yes |
JSON | Yes | Yes | Yes | Yes | Yes |
Selectors | Yes | Yes | Yes | Yes | Yes |
UX/UI Enhancements | |||||
Accordion | No | jQuery UI | No | Yes | MooTools More |
Animation | scriptaculous | Yes | Yes | Yes | Yes |
Auto Completion | scriptaculous | No | Yes | Yes | No |
Browser History | scriptaculous | No | Yes | Yes | No |
Calendar | No | jQuery UI | Yes | Yes | No |
Charting | No | No | Yes | Yes | No |
Drag and Drop | scriptaculous | jQuery UI | Yes | Yes | MooTools More |
Grids | No | No | Yes | Yes | MooTools More |
Progress Bar | No | jQuery UI | Yes | Yes | No |
Resizing | No | jQuery UI | Yes | Yes | No |
Rich Text Editor | No | No | Yes | Yes | No |
Slider | scriptaculous | jQuery UI | Yes | Yes | MooTools More |
Tabs | No | jQuery UI | Yes | Yes | No |
Themes | No | jQuery UI | Yes | Yes | MooTools More |
Tree Views | No | No | Yes | Yes | No |
其他值得注意的框架
为了简洁,本文只讨论五个比较流行的框架,这并不意味着这是最流行的、最好的、功能最丰富的。
其它的一些框架也值得一提、值得一看。
回顾
在本文中,你已经了解到JavaScript框架的概念,知道它在网站和网络应用发展中的好处。对这些框架的共同功能有一个总体描述,并用实例说明了它的应用。同时你也了解到五个框架的一个或一些用户体验和用户界面。最后,你得到了一份直观的表格,突出显示每个框架具有或不具有的特色。有了这些信息,在为你或你的团队作出明智选择之前,你可以进一步研究这些框架。
资源
获得产品和技术
关于作者
Joe Lennon is a 24-year-old software developer from Cork, Ireland. Joe is author of the forthcoming Apress book Beginning CouchDB, and has contributed several technical articles and tutorials to IBM developerWorks. In his spare time, Joe likes to play football (soccer), tinker with gadgets and work on his Xbox 360 gamer score.
转载地址:http://www.denisdeng.com/?p=736
原文地址:http://www.ibm.com/developerworks/web/library/wa-jsframeworks/index.html
摘要:现代网站和web应用程序趋向于依赖客户端的大量的javascript来提供丰富的交互。特别是通过不刷新页面的异步请求来返回数据或从服务器端的脚本(或数据系统)中得到响应。在这篇文章中,你将会了解到javascript框架如何更快、更方便的创建互动性强、响应快得网站和web应用程序。
导言:JavaScript是一种面向对象的脚本语言,一直以来用作Web浏览器应用程序客户端脚本接口的选择。JavaScript允许Web开发人员编程与网页上的对象的工作,为凭空操作这些对象提供了一个平台。当JavaScript最初推出时,它通常用来提供一些微不足道的功能,如时钟、在浏览器状态栏中滚动文本。另外一个常用特色就是“rollover link”,即当用户的鼠标滑过对象时,其文本的颜色或背景图片发生改变。然而,近年来Ajax为网络编程带来了全新的互动,JavaScript几经发展变得更加有用。在Ajax之前,任何服务器端处理或数据库访问都需要整页面被“刷新”或由浏览器呈现新的页面。这不仅缓慢,令用户失望,而且也浪费了带宽和资源。
Ajax就是异步的JavaScript和XML,虽然引用XML不在有效,但是Ajax能对除了XMl的其它几种格式的数据作出响应,如JSON(JavaScript对象表示法)。 Ajax的工作原理是,以异步的方式提交一个 HTTP请求提交到web服务器,不刷新也不呈现整个页面,仅呈现响应的内容。相反,开发人员通常使用DOM(文档对象模型)操作修改网页的一部分,HTTP响应返回的数据将反映这些改变。
什么是JavaScript框架?
JavaScript本身是一种非常强大的语言,你不需要任何额外的框架就可以创建由它支持的富互联网应用系统(RIA)。但是,使用JavaScript并不是一件容易的事,主要是因为在试图提供多种浏览器支持时各种并发症的出现。和HTML和CSS一样,不同的浏览器的JavaScript执行方式不同,那么确保您的JavaScript代码跨浏览器兼容可以说是一个恶梦。
一个JavaScript框架或库实际上是一系列工具和函数,它能更容易产生跨浏览器兼容的JavaScript代码。每个库在许多流行的最新版本的Web浏览器经过了严格测试。因此,您完全可以相信,使用这些框架中的任何一个,您的基于JavaScript的RIA在不同的浏览器和平台中将大体一致。
除了浏览器兼容性问题外,JavaScript框架可以更容易地编写代码去获取、遍历及操纵DOM元素。它们不仅能提供一个快捷的函数来获取一个DOM元素的引用,而且还允许菊花式的DOM遍历函数链查找父母、子女或任何深度的兄弟节点元素。最后,框架提供了一系列的函数,使其更容易的操纵这些对象,允许其内容更改、添加、删除,或者操纵class的样式而影响元素的外观。
JavaScript框架的另一个重要特色就是能更好的支持事件处理。由于浏览器之间的不同实现,跨浏览器事件处理可以说是一个恶梦。因此,JavaScript框架通常将浏览器事件包装起来,并提供一系列有用的跨浏览器函数来处理它们。一些框架也提供了标准化的代表键盘键码系列的事件(如Esc键、Enter键、光标等等)。
所有这些功能是非常有用的,JavaScript框架已在其最近流行Ajax应用中起重要作用。和JavaScript其他方面一样,每个Web浏览器倾向于支持以不同的方式Ajax,使Ajax支持所有的浏览器将是很繁重的工作。几乎所有的JavaScript框架都包括一定形式的Ajax库,通常是提供Ajax请求和响应对象,在对响应作出评价后,更新DOM元素,轮询一个特定的请求。
一个JavaScript框架的典型特征
现在让我们看看大多数JavaScript框架都具有的一些功能。这些特色有:
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |