使用extjs的利弊是什么?

Ano*_*oop 24 javascript extjs

在我的一个项目中,有人建议我使用extjs.我对extjs知之甚少.我使用jQuery完成了我的所有项目.我知道很多人都非常了解extjs.

请告诉我使用extjs的利弊?

Alp*_*ale 24

以下是ExtJS的一些主要优点和缺点:

优点

  1. ExtJS就像小部件的超集,如简单的标签,复杂网格的文本框按钮,拖放面板等.它还提供远程调用远程服务器方法的远程演示.

  2. 它有很好的文档,包括教程,示例和用户社区.

  3. 活跃且目前最常用的javascript RIA框架

  4. 良好的代码质量/可读性

  5. 惊人的小部件,做我们可能想要的一切.似乎很快,每个版本都带来了新的改进.

缺点

  1. 占用空间 - 库的大小为500 KB(使用mod_gzip可以减少到150KB).网页上的主页加载时间很长.

  2. CSS - 很容易迷路.很难找到正确的类名

  3. HTML - 充满了div和过于复杂的生成代码.即使使用FireBug也很难调试.

  4. 修改GPL 3.0许可.免费用于开源应用程序,但支付商业闭源应用程序.

  5. 使用ExtJs让我们相信GUI会有点桌面和丰富.定制不容易实现.

  6. 加载甚至简单的东西需要很少的编码行,这在简单的html或jQuery中更简单.

  7. 调试不是很容易.只有GWT在javascript框架中的托管模式下有更好的调试.

  8. 用户无法为某个页面添加书签.由于对象是通过DOM操作呈现的,因此搜索引擎无法对页面编制索引

  9. 需要经验丰富的开发者

  10. 我不确定如何在没有整个显示器的情况下使用它.我希望能融入我们已有的东西.

参考: ExtJs - 优点和缺点

希望这可以帮助.

  • Pro#5在你复制它的文章的上下文之外没有任何意义.另请注意,文章指的是Ext JS 3.0,此时此刻有点过时了. (3认同)

Bri*_*kau 14

虽然之前的答案已被接受,但有几点我想澄清.

Ext不使用"修改过的"GPL许可证.它完全根据标准GPL v3和Sencha商业许可证进行双重许可.有一些FLOSS例外可以使其与插件/扩展程序开发人员等进一步兼容,但GPL许可证是标准许可证.

如果没有某些背景,缺点清单虽然大多数是公平的,但在某种程度上是没有意义的.将Ext JS与jQuery进行比较也没有意义 - 将苹果与橙子进行比较.如果将Ext JS与其他可比较的RIA框架(Dojo,YUI,Sproutcore)进行比较,那么诸如足迹,CSS/HTML复杂性,调试等等都会变得非常均匀(或者至少可以进行更有用的对比).只是说这些东西在摘要中是"缺点"并不是很准确,因为它们大多只是任何复杂RIA框架的要求.

关于一些特定点,这个列表(根据源文章)引用Ext 3.0.截至本文撰写时的当前版本是4.0.7.自3.0以来,总代码占用空间实际上已经增加,但Ext现在附带了动态类系统和构建工具,允许您根据应用程序的依赖关系创建优化的构建.所以是的,它有足够的总占地面积,但不,你不必包括所有东西.

基于小部件的复杂性和Ext JS支持的布局系统,CSS/HTML复杂性是给定的.这在RIA世界中非常普遍,并不能与简单的jQuery插件相媲美.Ext 4.0现在使用SASS/Compass btw和生成的CSS,因此自定义源样式实际上比3.0更容易.

调试在4.0中也更容易一些(同样由于新的类系统),但肯定比Java(GWT)这样的静态类型语言更难.这是任何基于JavaScript的框架的问题,而不仅仅是Ext.

如果您实现历史/状态支持(两者都由Ext提供),当然可以在您的应用程序中为页面添加书签.这是你必须要做的事情,因为它是特定于应用程序的(在单个小部件级别有一些自动状态管理),但它肯定是可能的.同样,这是一个常见的RIA问题,而不是Ext的任何特定问题.

我同意的专业人士名单(除了第5点,它是脱离背景而没有任何意义).事实上,自3.0版以来,文档和帮助指南已经有了更好的方法.如果你想在Ext JS和其他RIA框架之间进行特定的比较,那么只需搜索SO,因为之前已经很好地覆盖了它.


dbr*_*rin 11

你试图用框架做什么将决定使用哪一个.

ExtJS的

非常适合单页RIA应用程序,其中ExtJS框架在页面上加载一次,旁边是0手动编码HTML.这意味着框架管理应用程序中的所有内容.


JQuery的

使用情况有很大不同:你的服务器端框架生成HTML(通过JSP,GSP,ASP,不论),你通过包括jQuery库到每一个功能添加到这些页面.


ExtJS缺点:

  1. 复杂的框架 - 不适合胆小的人:)
  2. 陡峭的学习曲线
  3. 有错误 - 是的.但是,大多数问题都是因为没有正确使用框架而没有充分理解文档.
  4. 不断发展的框架 - 这可以被视为+和 - 但今年已经发布了约7个版本.

ExtJS优点:

  1. 真正多功能的客户端MVC框架,具有目前可用的最完整的组件和小部件集.
  2. 扩展.直译Ext.extend()是你做的第一件事.
  3. 美丽.开箱即用的主题是如此精心设计,大多数开发人员没有主题技能(我们没有指向任何手指)可以创建真正专业和美观的Web应用程序.
  4. 到目前为止,文档是我见过的任何库,API或开源项目的最佳选择.完成API文档(即使有一些漏洞)和实时代码示例,您可以调整并查看发生了什么+源代码.横跨大部分图书馆的很好的例子.从MVC到Theming的最重要主题的优秀指南.甚至是视频库.这个文档最近已经大大更新了,所以如果你在过去的6个月里没有看到 - 好吧,去看吧!
  5. 论坛非常活跃,许多关键专家每天积极参与.
  6. 用户扩展(UX) - 一个庞大的用户社区带来了一系列令人惊叹的创意解决方案.
  7. 这是巨人!它有很多很棒的组件,我没有必要真正扩展到无法识别的东西.我提到了学习曲线吗?
  8. MVC - 对于任何自尊的RIA应用程序MVC框架是必须的
  9. 内置工具
  10. SASS和Compass的主题支持
  11. ......还有更多.

免责声明:我是一名前沮丧的ExtJS开发人员,他在学习曲线上非常高兴,真正享受它:)

  • (作为社区维基开放)