`
ShellyLi
  • 浏览: 112127 次
  • 性别: Icon_minigender_2
  • 来自: 山东
社区版块
存档分类
最新评论

AJAX框架

    博客分类:
  • ajax
阅读更多
几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比


--摘录


[说明]我在网上许多地方遇到过这篇文章,都没有明确标记出作者,感到奇怪??如果您是这篇文章的作者,那么十分抱歉,恕我直接到文章摘录于此。因为这篇文章对我实在太具有参考价值了。原文如下:


AJAX是web20的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等,那么我们到底在什么情况下该使用那个框架?以下是一组摘抄的数据:

Ajaxian在2007年底对Ajax工具进行了调查,部分调查结果见下表(其中数字为调查者使用该工具的百分比,详细的请参见网页):http://ajaxian.com/archives/2007-ajax-tools-usage-survey-results

Prototype jQuery Ext Script.aculo.us Mootools YUI JSON Dojo Backbase
34.1% 29.3% 22.5% 22.3% 14.3% 13% 12.9% 11.8% 8.3%

其中Prototype使用率最高,很大程度上是因为它是最早成熟的框架,很多以前在项目中采用,所以现在一直在用

让我们来看看选择AJAX框架的基础:

你的项目需求(即你需要哪些特性,例如是否要求做出精美的界面、特效或其它功能)
是否支持A等级的浏览器(IE, Firefox等)?
文档的质量:是否完善(包含教程,API,代码示例等)
框架的可扩展性如何?为框架写插件容易吗?
你是否喜欢它的API的风格?
能大多程度上统一你的JavaScript代码的风格?
框架大小(太大的框架导致用户下载时间的延长)
框架是否强迫你改变写HTML的方式(Dojo就是这样)?
代码执行速度:性能如何?
代码是否为模块化(Mootools为高度模块化)?代码可重用性如何?

1:Jquery


主页:http://jquery.com/
设计思想
简洁的思想:几乎所有操作都是以选择DOM元素(有强大的Selector)开始,然后是对其的操作(Chaining等特性)。

优点
小,压缩后代码只有20多k(无压缩代码94k)。
Selector和DOM操作的方便:jQuery的Selector与mootools的Element.Selectors.js比较,CSS Selector, XPath Selector(1.2后已删除)
Chaining:总是返回一个jQuery对象,可以连续操作。
文档的完整,易用性(每个API都有完整的例子,这是其它框架现在不能比的),而且网上还有很多其它的文档,书籍。
应用的广泛,包括google code也使用了jQuery。

使用jQuery的站点:http://docs.jquery.com/Sites_Using_jQuery
核心的开发团队和核心人员:John Resig等。
简洁和简短的语法,容易记。
可扩展性:有大量用户开发的插件可供使用(http://jquery.com/plugins/)
jQuery UI(http://jquery.com/plugins/,基于jQuery,但和核心的jQuery是独立的),不断发展中。
友好和活跃的社区:google groups:http://docs.jquery.com/Discussion
事件处理有很多方便的方法,如click,而不是单一的addEvent之类的。

缺点
由于设计思想是追求高效和简洁,没有面向对象的扩展。设计思路和Mootools不一样。
CSS Selector的速度稍微有些慢(但是现在速度已经大幅提高)



2:Mootools

主页:http://mootools.net/
设计思想
面向对象的设计思想。

优点
模块化,各模块代码非常独立,最小的核心只有8k,最大的优点是可选择使用哪些模块,用的时候只导入使用的模块即可,完整的也不到180k(没有压缩),压缩后不到70k。
语法的简洁,直观。
特效(Effects):这一点比jQuery稍强,现在也正在开发Mootools UI(这应该是Ajax框架开发的一个趋势)。
代码写的优美,易阅读和修改。
文档的完整(最新的1.2beta的文档比以前更详细)。
活跃的社区:官网(http://forum.mootools.net/),还有一个IRC。
性能:见:http://mootools.net/slickspeed/

缺点
修改了低层的一些类:如Array, String等,这也是设计思想的不同。
在DOM和CSS Selector上不如jQuery强大。


3:Dojo

主页:http://dojotoolkit.org/
优点
背后强大的支持:IBM、Sun、BEA等,这是非常重要的优势。
功能的强大,Full Stack的框架,扩展了DHTML的能力,例如:
支持与浏览器Back/Forward按钮的集成。
Dojo Offline,一个跨平台的离线存储API。
Chart组件,可以方便地在浏览器端生成图表。
基于SVG/VML的矢量图形库。
Google Maps、Yahoo! Maps组件,方便开发Mashup应用。
Comet支持,通过通用的Buyeux协议。
强大的UI(Dijit)。
面向对象的设计,统一的命名空间,包管理机制(The Package System and Custom Builds)
可扩展性。

缺点
复杂,学习曲线陡。
文档的极端不全,这是一个很大的问题。
API很多不稳定,各版本间改动较大,现在还不是一个成熟的框架。
侵入性太大,页面中大量使用dojo的属性,例如<button dojoType="dijit.form.Button" id="helloButton">,如果将来dojo升级或者换一个框架时,负担会很大。
性能问题,由于dojo加载采用了同步的机制,会暂时锁定浏览器,导致CPU使用率达到100%。另外,很多Widget的速度很慢。



4:Ext JS


主页:http://extjs.com/

设计思想
组件化,推进RIA(Rich Internet Application)的应用。

优点
强大的UI,而且性能不错,这是其最大的优点。
速度快,管是UI还是其它模块。
100%面向对象和组件化的思想,一致的语法,全局的命名空间。
文档的完整,规范,方便。
核心的开发团队,Jack Slocum等。
活跃的社区,迅速增加的用户量。
模块化实现,可扩展性强。
所有的组件(widgets)都可直接使用,而无需进行设置(当然,用户可以选择重新配置)。

缺点
稍复杂。
为重量级的框架(包含大量UI),体积大。如果导入ext-all.js,压缩后也有近500k。

注意:EXT的商业使用:如果只是把extjs包含在自己的项目中,而且这个项目不是卖给用户做二次开发的工具箱,或组件库,就可以遵守LGPL协议免费使用;否则要付费。


总结
轻量级选择
轻量级的选择:主要是mootools和jquery,由于它们的设计思想的不同,jQuery是追求简洁和高效,Mootools除了追求这些目标以外,其核心在于面向对象,所以jQuery适合于快速开发,Mootools适合于稍大型和复杂的项目,其中需要面向对象的支持;另外,在Ajax的支持上,jQuery稍强一些;在Comet的支持上,jQuery有相关的插件,Mootools目前没有,但是Comet的核心在于服务器的支持,浏览器端的接口很简单,开发相关的插件很简单。

在面向对象的Javascript. Library中,mootools逐渐战胜了prototype(体积大,面向对象的设计不合理等),也包括script.acul.ous(基于prototype,实际上就是prototype上的UI库)。

面向RIA的框架

考虑纯JavaScripty库,目前主要是Dojo和ExtJS(还有YUI)。Dojo更适合企业应用和产品开发的需要,因为离线存储、 DataGrid、2D、3D图形、Chart、Comet等组件对于企业应用来说都是很重要的(当然这些组件还要等一段时间才能稳定下来)。例如,BEA基于Mashup技术开发的产品中已经使用了Dojo。

ExtJS:美观和"易用",并且足够强大。在对UI有比较大的需求时,是首选。


分享到:
评论

相关推荐

    微软ASP.NET AJAX框架剖析

    微软ASP.NET AJAX框架剖析 大约在2006年年初,AJAX迅速成为Web 2.0开发中的一个热点,也成为开发以用户为中心的Web应用程序事实上的标准。然而,要开发出高质量的AJAX应用程序,首先要求开发者是一名JavaScript高手...

    ajax框架

    ajax框架 AJAX_DWR

    Ajax框架Ajax框架Ajax框架Ajax框架

    Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架

    四种流行的AJAX框架.doc

    四种流行的AJAX框架.doc 四种流行的AJAX框架.doc四种流行的AJAX框架.doc 四种流行的AJAX框架.doc 四种流行的AJAX框架.doc

    AJAX框架 v4.0

    AJAX框架 v4.0 AJAX网站框架应用,AJAX网站集成,AJAX效果应用。

    龙博AJAX框架是跨浏览器的JavaScript框架集

    • 包含40多个图形界面控件, 例如标签(Tabs),窗口对话框(Dialog),树型表格(TreeGrid),时间线(TimeLine)等等. • 多浏览器兼容, 包括IE6+, firefox1.5+, ...• 和其他Ajax框架,如jQuery, prototype, mootools充分兼容.

    CH2.Ajax 框架

    CH2.Ajax 框架 支持简单加密(Base64)和跨域(Jsonp) 如何以最快捷的方式直接调用服务器方法? 场景: 比如,服务器已有如下方法: namespace CH2 { class BLL{ User Login(string name,string password){ ...

    Jquery全解析,ajax框架

    ajax框架,jquery技术。jquery是一个轻量级的JS框架,能帮助我们快速开发ajax框架。

    EXT是一款强大的AJAX框架

    EXT是一款强大的AJAX框架 /** * 定义命名空间 */ Ext.namespace("Mis.Ext"); /* *CRUD面板基类 */ //继承EXT的Panel,创建CRUD面板 Mis.Ext.CrudPanel=Ext.extend(Ext.Panel,{……}); //限于篇幅就不列出全部代码 ...

    json ajax ajax框架

    json ajax ajax框架 json ajax ajax框架

    jquery ajax框架

    jquery ajax框架jquery ajax框架jquery ajax框架jquery ajax框架jquery ajax框架

    兼容浏览器的ajax框架

    兼容浏览器的ajax框架,比较实用,轻量级的.

    ASP.NET Ajax框架与组件

    ASP.NET Ajax框架与组件

    Asp.net Ajax框架教程

    Asp.net Ajax框架教程 很好的讲解哦

    ajax框架项目ajax框架项目

    ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目

    基于java的开发源码-Ajax框架 ZK.zip

    基于java的开发源码-Ajax框架 ZK.zip 基于java的开发源码-Ajax框架 ZK.zip 基于java的开发源码-Ajax框架 ZK.zip 基于java的开发源码-Ajax框架 ZK.zip 基于java的开发源码-Ajax框架 ZK.zip 基于java的开发源码-Ajax...

    十大AJAX框架

    十种当前最流行Ajax框架分析、介绍;

    Ajax框架汇总 Ajax框架汇总

    Ajax框架汇总 Ajax框架汇总 Ajax框架汇总 Ajax框架汇总

    ASP.NET Ajax框架教程

    应用场景代码示例(1)ScriptManager控件示例(2)UpdatePanel控件示例(3)UpdateProgress控件示例(4) Timer控件示例(5) Ajax中新Validators控件用法示例。。。。。。等,教程是基础是郑健老师的。。。内附有...

    一个简单的Ajax框架

    一个简单的Ajax框架: function $(){ if(arguments.length == 1){ return document.getElementById(arguments[0]); } else if(arguments.length == 2){ return arguments[1].documentElement....

Global site tag (gtag.js) - Google Analytics