注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

js框架jQuery/prototype/mootool/YUI比较  

2013-07-25 19:27:49|  分类: html5-webapp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
         除了jQuery这个如日中天的js框架之外,还有哪此框架呢?丰富极了。不过使用最多的还是jQuery。
         其实,现在常用的js框架有Jquery,prototype,mootool,yui等,可能其他的框架都只算非主流。几种前端框架都有各自的针对性和特点,每种框架都适合相应规模的web项目,比如prototype和 jquery适合中小网站开发,mootool适合中型网站开发(估计使用最广泛的还算开源cms系统joomla的影响了),yui适合大规模的web项目开发,而小网站的数量要远大于门户或sns这种大网站的, 因此,不论怎么比较,jquery的使用数量都要超过mootool和yui。

        在入门级开发者人群中,prototype是使用量最大的,因为他相对简单一些,这里的简单和jquery的简洁不一样,prototype也算 “老”一点的框架,而且很多js高手入门都是从prototype开始的,因此也有很多wd对prototype有特殊的感情,毕竟,prototype 改变了我们对js的看法。它的很多设计思想也被沿用致其他框架中。但一个框架是否优秀不应当只看一面,更重要的,框架对浏览器的支持、文档、扩展行、性 能、编码风格这些因素也在影响框架的使用者。prototype太基础以至于对ie浏览器的版本判断很粗糙,它糟糕的文档和扩展性,都是阻碍其在那些想深 入学习js 的人群中更加流行的因素。因此,如果想积累一些入门级的前端实践 ,用prototype非常合适。

       有人说jQuery是被设计用来改变你写JavaScript的方法的。在这一方面jquery的确作的很好,20行的Dom javascript语句在jquery里只需要2-3行就可以完成,语言的简洁简直太吸引人了,尤其对于前端开发工程师这群多少有些代码洁癖的人来说, 简直美妙绝伦,甚至忽视了其粗糙的面向对象的结构这一致命的缺点。当我们过多的沉浸在代码简洁的乐趣中无法自拔的时候,对更高级抽象的忽视往往阻挡住了我 们的视野。因此,jquery本身无法承担庞大的网站架构任务,也只能在中小网站中搞一搞动画特效而已。但这仍然无法阻止wd们对jquery的偏爱,只 要你有洁癖,那么你一定会喜欢jquery的。

         在面向对象的方面,mootool的确作的不错,软件设计模式中的高内聚和低耦合在mootool中有良好的体现。文档也很完整,但mootool 的占有率一直不高是一个很尴尬的现象,作底端太多余,无法和jquery竞争,作高端又有点吃力,无法和yui竞争,给人鸡肋的感觉,就这样。

          如果你想作门户、如果你想作sns、如果你想作大型电子商务和电子政务网站,你大概只有一个选择,那就是yui,yui抽象出了比其他框架更复杂的 层次结构、把模块按照不同的层次划分,并定义层次之间模块依赖关系,这种设计使得yui对万行级代码的管理游刃有余,这种重设计轻开发的思想是yui的核 心之一,此外,yui不仅仅是js框架,他是js+css+规范的集合,必要的约束在团队协作项目中可以降低成本。其实yui本身也是团队合作的产物。在 扩展性方面,我觉得yui是所有前端框架作的最好的,ext就是选择基于yui进行扩展。相对来讲,prototype和jquery显然太小了。

        总之, 轻量级的选择主要是mootools和jquery,由于它们的设计思想的不同,jQuery是追求简洁和高效,Mootools除了追求这些目标 以外,其核心在于面向对象,所以jQuery适合于快速开发,Mootools适合于稍大型和复杂的项目,其中需要面向对象的支持;另外,在Ajax的支 持上,jQuery稍强一些($.ajax()功能强大);在Comet的支持上,jQuery有相关的插件,Mootools目前没有,但是Comet的核心在于服务器的支持,浏览 器端的接口很简单,开发相关的插件很简单。在面向对象的Javascript Library中,mootools逐渐战胜了prototype(体积大,面向对象的设计不合理等),也包括script.acul.ous(基于 prototype,实际上就是prototype上的UI库)。

          因此,特定的框架有特定的使用范围,在合适的项目上,相应的框架都会发挥其应有的优势。

          不过,随着jqery的子库的增多,多到了几于可以涉及到每一个webos的层面。

          在webos的大行其道的今日,这些框架还会如何火下去呢,等一下就是了。不过你要是能为开源做点什么,估计你的贡献不打紧也就一直留在计算机的世界了,即使到了未来。


  评论这张
 
阅读(365)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017