浅谈我对几个Web前端开发框架的比较

强调一下,这篇日志主要仍是针对想学前端开发的新朋友写的,不是说我有什么独特看法,而是比较客观的状态,就各类框架的异同和应用场合,须要注意的地方作简单描述,不作具体深刻分析,有的地方比较抽象,对于抽象之处你们能够到网上或各大高手博客中深刻学习,固然也能够与我继续探讨。 

一直以来对Web前端开发兴趣颇深,用过一些框架产品。在JavaEye上看到一些刚接触前端开发朋友的疑问,犹豫这些产品的前景利弊,不知从何入手。想把本身的一点经验分享给你们,若有不到位之处请一块儿来纠正。 

jQuery 
1. 绝对的万金油,核心js只有50K,占用带宽小,门户网站、管理系统,用在哪均可以。 
2. jQuery是对js底层dom操做封装最薄的一个框架,没有大量的专有对象,多为提供函数进行dom操做。准确的说,它不是偏重于富客户端的框架,而是侧重于对js dom编程。下面几种才是完整的富客户端的框架。 
3. 我认为它最大的三个亮点,一是支持CSS3的大量选择符,想定位或选择一个html元素简直垂手可得。二是灵活便捷的Ajax请求和回调操做。三是事件绑定功能,内部封装了不少事件,想统一为一个页面上的一些元素添加事件很方便,这也提升了复用性和可维护性,避免了页面中出现大量的html属性。合理的编码可使html与js, css分离开,便于维护。 
4. 此外它也封装了不少经常使用的操做,例如节点的添加删除、经常使用的动画效果、逻辑判断比较等等。避免了直接使用dom api进行繁琐的操做。 
5. 自己提供了可扩展的函数,能够本身编写插件与核心jQuery对象进行集成使用。这也是经常使用的手段,只要你理解js面向对象编程,熟悉jQuery API,就能写出不少定制的插件,复用在各类地方。 
6. 至于jQueryUI,与其余框架不同的地方在于,它不多用js去生成html,而是把现有的html经过jQueryUI的API加工成想要的效果,关于这点是好是坏,我以为就是见仁见智的问题了,没有必要争论什么。 
7. 新生的jQuery EasyUI不错。 
8. 若是从此的更新都保持如今这种模式,我认为它的前景很乐观,何时javascript完蛋了才轮到它玩完。 

ExtJS 
1. 一整套带有UI的js库,封装得不少,很厚,核心js就600多K,这么大的东西门户网站固然就别想了,里面的效果固然也不会运用到门户网站,因此它是专门为管理系统而生的。由于局域网不会有带宽问题。 
2. 它与jQuery不一样,基本上是纯用js来生成html的,页面里只需引入各个ExtJS库和你本身写的js,不会出现不少html内容,body里基本没什么。因此优化就显得重要了,否则会严重浪费资源。 
3. UI就不说了,你们都承认,原本就是为UI而生,它能够作出来桌面级程序的效果。通常来讲,一个管理系统的项目若是用Ext,基本就从始至终都是Ext作了,不会像jQuery那样,哪想要了就加在哪,很随意。Ext更像一个总体(虽然它也能够拆开用,不过麻烦,不建议)。 
4. 提供了对其余js框架的适配,像对jQuery, prototype等。没实际应用过,就不说了。 
5. 理解js面向对象编程在ext中很重要,若是你以为用jQuery时了解简单的dom和css便可,那你在这就吃大亏了,Ext到处离不开对象的概念。 
6. Ext的UI开发相似C#,有不少控件。不一样的是,你要所有本身手写,因此开发量较大。如今虽然有Ext Designer可视化工具,但其效果并不很好,生成的代码有的每每不是想要的,不易维护,真作起来仍是本身写更方便。 
7. 团队开发时,必须保证作UI的人每人都会Ext,并且深刻应用过,由于Ext项目是总体,不适于参杂html替代。 
8. Ext项目在IE系列浏览器上不可用,至关卡,我想这不是Ext自己的问题,所谓内存泄露等问题如今早已解决了,并且不是关键所在。我开不少网页同时用IE8看jQuery.net官网时有时也会卡,试想他们官网确定作到很好的优化了吧,jQuery既是如此,况且Ext。反观其余浏览器,FireFox, Chrome等浏览Ext项目都很流畅,因此应该是浏览器对js解析不一样形成的。 
9. 版权问题,Ext运用在商业项目中是收费的。 

Flex  [本身也是在学习中,不敢妄言,之后深刻应用后再作补充] 
1. Adobe平台的,基于ActionScript实现,用在哪都行,但偏重于内网管理系统,用在门户网站就至关于在线玩Flash游戏,loading... 
2. 与Ext不一样,它有健壮的可视化开发工具Flash Builder,能够同C#同样进行拖拽布局,生成一种xml,也便于维护。 
3. 编译后生成swf文件直接嵌入html便可,提升安全性,浏览时同flash,须要flash player。 
4. 与Ext相同,也是属于一个总体,有丰富的控件库。 
5. 这条纯属我的观点,HTML5不支持插入对象,也就意味着不能插入swf文件,难道Flex就完蛋了?虽然HTML5不支持Flash是客观事实,但HTML5的统一为时尚远,各大浏览器对HTML5的支持,Adobe是否会有对策,这些会怎么样如今都很差说,HTML5与HTML4并行应该会有很长一段时间,至少Flex在如今是一个名列前茅的好产品,因此我选择了它。 

SilverLight 
微软平台的,主要是应用在微软系列的语言中,包括CS与BS架构。一样,除了jQuery,Asp.net也不适合与以上等框架集成,由于Asp.net是事件驱动,这些框架都是为消息驱动而生的,勉强应用只会事倍功半,丧失.net自己的优点。 

js面向对象编程我一直在提,其实并不难理解,关于这点应该学习下,颇有必要。它涉及到代码复用、功能扩展、对象继承、闭包、优化等不少问题,能省去很多编码,便于维护,还能不改变框架源代码而实现不一样的功能。 

但愿能给刚走进前端开发的朋友一点帮助。 javascript

相关文章
相关标签/搜索