几种流行的JS框架的选择

目前来看,JS框架以及一些开发包和库类有如下几个,Dojo 、Scriptaculous 、Prototype 、yui-ext 、Jquery 、Mochikit、mootools 、moo.fx

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

PrototypejQueryExtScript.aculo.usMootoolsYUIJSONDojoBackbase
34.1%29.3%22.5%22.3%14.3%13%12.9%11.8%8.3%

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

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的速度很慢。


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强大。

 

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的速度稍微有些慢(但是现在速度已经大幅提高)

设计思想
简洁的思想:几乎所有操作都是以选择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。


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有比较大的需求时,是首选。



 

转载于:https://www.cnblogs.com/linsongbin/archive/2008/06/26/1230115.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2014_beijing_onsite

5112 A Curious Matt 签到&#xff0c;排序题目 5113 Black And White 5*5的方格&#xff0c;dfs剪枝 5114 Collision 线性方程求解 扩展欧几里得 5115 Dire Wolf 简单的区间DP问题。 5116 Everlasting L 5117 Fluorescent …

[转]关于HTTP服务器每个客户端2个连接的限制

这两天猫在家里搞一个多线程的断点续传得C#程序&#xff0c;发现同时只能开2个线程下载&#xff0c;其他的线程一律要等待&#xff0c;这样就导致下载大文件时其他线程经常超时&#xff0c;郁闷好久。今天回公司无意中发现了一个帖子&#xff0c;终于真相大白了&#xff0c; …

2014_guangzhou_onsite

5127 Dogs Candies 链表&#xff0c;暴力 5128 The E-pang Palace 计算几何水题&#xff0c;求不相交两个矩形的最大面积 5129 Yong Zhengs Death 5130 Signal Interference 计算圆与多边形的交&#xff0c;计算几何模板题目 5131 Song Jian…

[ SAP ]MM Valuation System

1、除了工厂&#xff0c;另一个会决定不同的会计科目的因素是物料本身&#xff0c;所以我们在物料主数据中会需要定义一个“评估类”参数&#xff0c;通过“评估类”来决定会计科目。 2、创建/更改/删除物料主数据&#xff1a;后勤-》物料管理-》物料主数据-》物料 MM01创建物…

2014_shanghai_visit

5090 Game with Pearls 签到题目&#xff0c;直接模拟即可。 5091 Beam Cannon 矩形覆盖的最大点数&#xff0c;离散化扫描线线段树。 5092 Seam Carving 记录路径的DAG 5093 Battle ships 行列建边&#xff0c;二分图匹配 5094 Maze …

从MySQL导入导出大量数据的程序实现方法

大家一定使用过 phpmyadmin 里面的数据库导入&#xff0c;导出功能&#xff0c;非常方便。但是在实际应用中&#xff0c;我发现如下几个问题&#xff1a; 1 数据库超过一定尺寸&#xff0c;比如6M 这时使用导出一般没问题&#xff0c;可以正确的保存到本机硬盘上面&#xff0c…

2013_chengdu_visit

4716 A Computer Graphics Problem 签到题目&#xff0c;模拟。 4717 The Moving Points 求n个点的最大距离最小值&#xff0c;三分时间即可 4718 The LCIS on the Tree LCT动态树 4719 Oh My Holy FFF 4720 Naive and Silly M…

JavaScript: Cookie 详解、实例与应用

Cookie&#xff08;也&#xff09;是JavaScript中的一种机制&#xff0c;可以实现严格的跨页面全局变量的要求。 Cookie是存于用户硬盘的一个文件&#xff0c;这个文件通常对应于一个域名&#xff0c;当浏览器再次访问这个域名时&#xff0c;便使这个cookie可用。因此&#xff…

2013_warmup

感觉题目质量很差的一套&#xff0c;可能是不正式的原因。 4706 Childrens Day 签到题。 4707 Pet 签到题目&#xff0c;BFS或者DFS; 4708 Rotation Lock Puzzle 分析模拟题 4709 Herding 计算几何水题。 4710 Balls R…

cs模式下,显示网络图片一例

由于在cs模式中 显示图片很简单picturebox1.imageimage.fromfile(filename) 但是filename不能是url&#xff0c;所以不能显示网络图片&#xff0c;怎么办呢&#xff1f;其实 .net 为我们准备了一套很方便的方法。在.net中&#xff0c;网上的资源&#xff08;图片&#xff0c;动…

2013_chengdu_online

4728 A Game in the Hospital 4729 An Easy Problem for Elfness 4730 We Love MOE Girls 签到题目 4731 Minimum palindrome 规律构造 4732 Round Table 4733 G(x) 枚举dp 4734 F(x) 数位dp基础题目。…

【Vegas2008】7月19日-凉粉的做法

1&#xff09; 准备淀粉&#xff0c;1个量杯。2&#xff09; 盛出1杯淀粉到小锅里&#xff0c;倒6份凉水到小锅里。淀粉和水的比例是1&#xff1a;6&#xff0c;用什么工具来量并不重要&#xff0c;把比例弄好了就行。另外&#xff0c;关于比例&#xff0c;有人喜欢1&#xff1…

2013_hangzhou_online

4738 Caocaos Bridges 求无向图的桥中最小的那个&#xff0c;tarjan 4739 Zhuge Liangs Mines 状态压缩暴力 4740 The Donkey of Gui Zhou 求两个点在图上的相遇点&#xff0c;模拟dfs 4741 Save Labman No.004 计算几何&#xff0c;平面上的两条…

骑行封龙山

最近受不了luoluo和尚的鄙视加刺激(车子比我晚买好几个月&#xff0c;骑行路程快1000公里了-_-),中午心血来潮就随便选了个路线&#xff0c;跟刘兄一起骑行封龙山去了&#xff0c;本来预订的正常路程从二环到封龙山大概17公里&#xff0c;来回34&#xff0c;偏偏被我这天才路痴…

2013_nanjing_online

4748 Area 4749 Parade Show 贪心模式匹配/rk-hash 4750 Count The Pairs 最小瓶颈生成树&#xff0c;统计瓶颈>c的个数。 4751 Divide Groups BFS/DFS搜索/划分成二分图 4752 Polygon 简单计算几何&#xff0c;线和多边形的交辛…

SQL Server 2005异地备份

前几天做了数据库镜像&#xff0c;现在也要来做做数据库的备份。本方案采用备份至本地然后copy到文件服务器的方法。 SQL server 2005打了sp2的补丁后好像存储过程xp_cmdshell是不能直接用的 显示高级选项&#xff08;仅需执行一次&#xff09; EXEC sp_configure show advan…

2013_changchun_online

4759 Poker Shuffle 二进制规律枚举 4760 Good Firewall 稍加变化tire树 4761 Sky 4762 Cut the Cake 概率题目&#xff0c;yy&#xff0c;公式。 4763 Theme Section 简单kmp 4764 Stone 威做福博弈&a…

从控件开发的角度看几个editor控件,Freetextbox,radtoolbar,abouteditor,cuteeditor

今天控件的开发有了很大进展&#xff0c;写些东西。在开发之前&#xff0c;我看了几个控件的源代码&#xff0c;如Freetextbox,radtoolbr,abouteditor以及cuteeditor。今天凭会议总结一下他们的特点&#xff0c;能记下来的都是他们很独特的地方。 首先是FreeTextbox 此控件是生…

2014_hangzhou_onsite

4770 Lights Against Dudely 状态压缩枚举 4771 Stealing Harry Potters Precious 签到&#xff0c;压缩后直接BFS 4772 Zhuge Liangs Password 签到题目&#xff0c;模拟矩阵旋转即可 4773 Problem of Apollonius 4774 Random Number Generato…

C#与VB.NET代码互相转换在线工具

实用的在线工具---把 C# 代码转换成 VB.NET 代码在线工具--把C#代码转换成VB.NET代码有不少朋友在网上找资料时经常会遇到想要VB.NET的代码&#xff0c;但却只有C#的代码。 自己改又改不大来&#xff01; 本人不经意发现有一个在线工具&#xff0c;使用方便。 支持&#xff1a;…