web前端框架对照分析
发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
web前端框架对比分析
我现在在做一个课题研究,主要针对目前主流的web前端框架,请将主流的web前端框架(如Dojo,extjs、jquery、zk、Bootstrap、Prototype)等,各自的性能、易用性、继承性、浏览器的支持度,等等方面列出来,大家可以对自己比较熟悉的框架发表一下意见,最好能明确列出各自的优缺点
------解决方案--------------------
jquery简单,易上手,体积小,容易扩展!
extjs这个看过,挺大的,已有功能挺丰富的,但那些功能不一定用得上!
------解决方案--------------------
prototype也不错,以前用,现在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。
二、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强大。
三、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的速度很慢。
四、Ext JS
主页:http://extjs.com/
设计思想
组件化,推进RIA(Rich Internet Application)的应用。
优点
强大的UI,而且性能不错,这是其最大的优点。
速度快,管是UI还是其它模块。
100%面向对象和组件化的思想,一致的语法,全局的命名空间。
文档的完整,规范,方便。
核心的开发团队,Jack Slocum等。
活跃的社区,迅速增加的用户量。
模块化实现,可扩展性强。
所有的组件(widgets)都可直接使用,而无需进行设置(当然,用户可以选择重新配置)。
缺点
稍复杂。
为重量级的框架(包含大量UI),体积大。如果导入ext-all.js,压缩后也有近500k。
注意:EXT的商业使用:如果只是把extjs包含在自己的项目中,而且这个项目不是卖给用户做二次开发的工具箱,或组件库,就可以遵守LGPL协议免费使用;否则要付费。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
ie6下png图片透明色解析为灰色,如何解决?
<div class="Self-navigation">
<ul>
<li><a href="#" class="login-li">登录...
-
.net 如何载入页面
是这样的,页面分为 1 、top.aspx 2、middle.aspx 3、buttom.aspx
现在就是在index.aspx 不知道如何引用top.asp...
-
ie下面序号只有1
<html>
<head>
<meta charset="gb2312" />
<style>
li {
width:100px;
height:20px;
border:1px dashed red;
}...
-
谈谈Javascript那些操蛋的事(一)?
1. 永远不要写function _name(){…}的形式,要养成var _name=function(){}的习惯。
“Javascri...
-
求解:这个程序为什么只能在ie中正常显示,其他的浏览器都显示不了
<td width="806" valign="top" >
<table width="100%" border="0...
-
Chrome中Margin 的问题
为什么设置的margin值,和实际的margin值,有1px的差别?
这是我设置的值
element.style {
margin-left: 10px;
...
-
關於facebook的奇怪問題
經過很久很久的折騰 我居然發現了這個問題
首先是大家找一個http連接的地址
隨便一個網址 自己加上url=...
-
用VB,VC 写的现有桌面软件,如何做成嵌入到WEB页面那样?
看到一些网站,可以在线编辑WORD文档
也看到一些产品,当然是能连上互联网...
-
关于CAS单点登录的SSL证书问题
最近老大让我实现几个系统的单点登录,我想用CAS实现单点登录,请教一下,SSL证书必须使用吗?如果是公司...
-
动态网页和静态网页的区别
各位大侠:
百度百科,定位动态网页有以下几点:
(1)动态网页一般以数据库技术为基础,可以大大降...