主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比
本文主要选取了目前比较流行的JavaScript框架Dojo、Google Closure、jQuery、Prototype、Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供大家参考,如有错误欢迎指出:)
主流框架对比
Dojo(重量级框架)
2. 面向对象的设计,有统一的命名空间和包管理机制,适用于企业级或是复杂的大型Web应用开发
2. html中也需要涉及dojo属性,将来换框架的成本高,例如:
<button dojoType="dijit.form.Button" id="helloButton">
3. 性能问题,dojo加载采用了同步机制,会暂时锁定浏览器
Google Closure(重量级框架)
Closure Compile
a = new Object => a = {}
a = new Array => a = []
if (a) b() => a && b()
return 2 * 3; => return 6;
经过测试,非Closure Library编写的JavaScript代码经过Closure Compile编译后可用。
Closure Inspector
Closure Templates
Closure Linter
Google JavaScript Style对JavaScript编码风格进行校验的工具,能很大程度上提升代码的可读性。
Closure Stylesheets
Google Closure Stylesheets让我们更易于使用CSS
Closure Library
1. 功能强大,组件丰富,文档齐全,适用于对性能要求高的Web应用
2. 面向对象,在模块化、程序结构组织、逻辑封装等方面有优势
3. 使用Closure Compile能大程度的进行压缩和优化
缺点
1. 与Dojo复杂程度相当,框架庞大,学习曲线陡
2. 代码中存在一些漏洞,详见
Google Closure: 糟糕的JavaScript
3. 相比jQuery,维护的人员要少
Closure Lite
参考资料
Google Closure and jQuery, Side by Side
2.
Getting Closure: Don’t just use it, don’t just abuse it
3.
closure-library 第一章 Closure介绍
jQuery(轻量级框架)
优点
1. 简洁易用,文档齐全
2. 有大量成熟的插件可供使用,扩展性强
3. 开发社区最大,维护的人员最多
缺点
1. 对面向对象没有很好的支持
2. 不能向后兼容,每一个新版本不能兼容早期的版本
3. 很多功能需要依赖于插件,然而插件太多,良莠不齐,不知道如何选择,且插件之间有可能会出现冲突
Prototype
优点
1. 对DOM和底层类的扩展使得在开发的时候增加了很多遍历
2. 有很多实用的函数
缺点
1. 由于扩展了底层类和DOM中的元素,可能存在一些潜在的冲突
2. 易用性不如jQuery
Mootools(轻量级框架)
优点
1. 功能强大,支持面向对象
2. 模块化,各模块代码非常独立,可以选择导入哪些模块
缺点
1. 对DOM和Selector的操作不如jQuery强大
2. 由于API设计上的不足,与Prototype类似,存在一些当下的和潜在的冲突,如修改了底层类以及其扩展DOM的方式
参考资料
YUI(重量级框架)
优点
2. 提供了丰富的UI库
3. API标准化、规范的类结构、命名空间等,易于维护
缺点
1. 速度相对jQuery慢
2. 易用性不如jQuery
各框架具体参数对比
各框架对于移动平台的支持
Dojo提供了
Dojo Mobile,jQuery提供了
jQuery Mobile,Mootools提供了
Moobile,YUI提供了
Bottle。
总结
重量级框架中,Dojo由于修改了html,后期如果更换框架成本会很高,不建议使用;Google Closure的Compile、Stylesheets、Linter虽然很强大,但是Library相比YUI还是稍逊一筹,因此建议使用YUI。
轻量级框架中,jQuery上手快,易用性强,但是不支持面向对象,且更多功能需要依赖插件来实现,适合快速开发;Mootools支持面向对象,而且模块化程度高,适合长期维护。
因此,可以结合项目的需求以及各JavaScript框架的特点来选择,不管使用何种框架,都可以附加使用一些工具,如使用Closure Linter来规范JS代码,使用Closure Compile来优化压缩JS代码,使用Closure Stylesheets来生成CSS文件,使用YUI Doc来生成API文档。
主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比的更多相关文章
- javascript 框架、根基技巧、布局、CSS、控件 JavaScript 类库
预筹备之 JavaScript 今朝支流的 JavaScript 框架排名中,jQuery 和 Ext 可算是佼佼者,得到了用户的普遍好评.海内的一些框架许多也是模仿 jQuery 对 JavaScr ...
- 20 个值得一试的JavaScript 框架
投递人 itwriter 发布于 2011-09-26 17:46 评论(3) 有1956人阅读 原文链接 [收藏] « » 本文介绍 20 个值得一试的 JavaScript 框架,如果你认为答 ...
- 16 款最流行的 JavaScript 框架
本文列举了16个当前最流行的JavaScript框架.在这个列表中,既包括jQuery和Mootools,也有Zepo移动JavaScript框架. 里面一定有你正在用的或想尝试用的JavaScrip ...
- 第一章 : javaScript框架分类及主要功能
从内部架构和理念划分,目前JavaScript框架可以划分为5类. 第一种是以命名空间为导向的类库或框架,如果创建一个数组用new Array(),生成一个对象用new Object(),完全的j ...
- 16 款最流行的JavaScript 框架
1. jQuery – Javascript框架 jQuery 是最流行的 JavaScript 框架,它简化了HTML 文档遍历.事件处理.动画和Ajax交互.jQuery插件非常之多. 2. Do ...
- 赶快收藏!16款最流行的 JavaScript 框架
下面为大家介绍 16款最流行的 JavaScript 框架,赶快收藏! 1. jQuery – Javascript框架 jQuery 是最流行的 JavaScript 框架,它简化了HTML 文档遍 ...
- 前端必备,十大热门的 JavaScript 框架和库
JavaScript 框架和库可以说是开源项目中最庞大也是最累的类目了,目前在github 上这一类的项目是最多的,并且几乎每隔一段时间就会出现一个新的项目席卷网络社区,虽然这样推动了创新的发展,但不 ...
- JavaScript 框架(库)
JavaScript 高级程序设计(特别是对浏览器差异的复杂处理),通常很困难也很耗时. 为了应对这些调整,许多的 JavaScript (helper) 库应运而生. 这些 JavaScript 库 ...
- 2014年最火的 21个JavaScript 框架
下面,我们将会介绍 2014 年最火的 21 款JavaScript 框架,专为前端开发者准备的哦:)众所周知, JavaScript 框架是 JavaScript编程语言最棒的特性之一. JavaS ...
随机推荐
- 蓝桥杯java高职组
标题1: 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中 国清华大学讲学. 一次,他参加某个重要会议,年轻的脸孔引人注目.于是 ...
- MSSQL - 视图操作
查询语句(包含使用Where子句): string sql = @"SELECT TableName, TablePosition,TableSate, TabelType,OpenTime ...
- int 转换成 CString(VC2008里有这个问题)
int s = 123; CString str; str.Format("%d",s); 这样就可以了,但是有的会提示这个错误 如果出现这个错误,就改成下面这个就OK了: st ...
- 第二代map-reduce架构YARN解析
需求 我们在考虑hadoop map-reduce框架的时候,最重要需包括: 1. reliability 可靠性,主要是jobtracker,resource manager可靠性 2. avail ...
- 怎样在Ubuntu中使用条件布局
我们知道现代手机能够随着手持的方位发生改变而使得手机的方位也随着发生改变.对有些应用来说,我们也希望手机的布局也能尾随发生变化.第二种情况是当我们的应用安装到不同屏幕尺寸的平台上,我们希望我们的布局会 ...
- 用DELPHI的RTTI实现数据集的简单对象化
在<强大的DELPHI RTTI--兼谈需要了解多种开发语言>一文中,我说了一下我用DELPHI的RTTI实现了数据集的简单对象化.本文将详细介绍一下我的实现方法. 首先从一个简单 ...
- Kendo UI开发教程(23): 单页面应用(一)概述
Kendo单页面应用(Single-Page Application,缩写为SPA)定义了一组类用于简化Web应用(Rich Client)开发,最常见的单页面应用为Gmail应用,使用单页面可以给用 ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- JSP的学习(2)——语法知识一
上一篇<JSP的学习>讲述了JSP的一些基础知识和底层原理,本篇将来学习JSP所需掌握的语法知识等. JSP的语法主要包括以下几个部分的内容: 1) JSP模板元素 2) ...
- python httpConnection详解
模块urllib,urllib2,httplib的区别 httplib实现了http和https的客户端协议,但是在python中,模块urllib和urllib2对httplib进行了更上层的封装. ...