强调一下,这篇日志主要还是针对想学前端开发的新朋友写的,不是说我有什么独特见解,而是比较客观的状态,就各种框架的异同和应用场合,需要注意的地方做简单描述,不做具体深入分析,有的地方比较抽象,对于抽象之处大家可以到网上或各大高手博客中深入学习,当然也可以与我继续探讨。
一直以来对 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 面向对象编程我一直在提,其实并不难理解,关于这点应该学习下,很有必要。它涉及到代码复用、功能扩展、对象继承、闭包、优化等很多问题,能省去不少编码,便于维护,还能不改变框架源代码而实现不同的功能。
一直以来对 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 面向对象编程我一直在提,其实并不难理解,关于这点应该学习下,很有必要。它涉及到代码复用、功能扩展、对象继承、闭包、优化等很多问题,能省去不少编码,便于维护,还能不改变框架源代码而实现不同的功能。