在我的一个项目中,有人建议我使用ExtJS。我对ExtJS知之甚少,我一直在使用jQuery完成我的所有项目。我知道很多人非常了解ExtJS。
请告诉我使用ExtJS的优缺点?
在我的一个项目中,有人建议我使用ExtJS。我对ExtJS知之甚少,我一直在使用jQuery完成我的所有项目。我知道很多人非常了解ExtJS。
请告诉我使用ExtJS的优缺点?
ExtJS
的主要优点和缺点:
优点:
ExtJS
类似于小部件的超集,例如简单标签、文本框按钮到复杂的网格、拖放面板等。它还提供了演示以调用远程服务器方法。
具有相当好的文档,包括教程、样例和用户社区。
活跃和目前最被广泛采用的JavaScript RIA框架。
良好的代码质量/可读性。
惊人的小部件集合,可以做我们可能需要的一切。似乎快速,每个版本都带来新的改进。
占用空间较大-该库大小为500KB(使用mod_gzip可减少至150KB)。首页面加载时间较长。
CSS-很容易迷失方向。难以找到正确的类名。
HTML-充满div和过度复杂的生成代码。即使使用FireBug,也难以调试。
修改后的GPL 3.0许可证。开放源代码应用程序免费,但商业闭源应用程序需付费。
使用ExtJS
会使我们认为GUI会像桌面和丰富。定制不容易实现。
即使是简单的加载也需要几行代码,而在普通的html或jQuery中则更简单。
调试不太容易。在JavaScript框架中,只有GWT在托管模式下具有更好的调试功能。
用户无法收藏某个页面。由于对象是通过DOM操作渲染的,因此页面无法被搜索引擎索引。
需要相当有经验的开发人员。
我不确定如何在没有整个显示为EXT
的情况下使用它。我希望能够集成到我们已有的内容中。
希望这可以帮到你。
虽然之前的回答已经被接受,但还有几个点需要澄清。
Ext并不使用“修改版”GPL许可证。它完全采用标准的GPL v3和Sencha商业许可证进行双重许可。 开源许可证例外使其更适用于插件/扩展开发人员等,但GPL许可证是标准许可证。
缺点列表在一般情况下大都属实,但没有一些上下文则有些毫无意义了。将Ext JS与jQuery进行比较也是没有意义的——这就像是在比较苹果和橙子。如果将Ext JS与其他类似的RIA框架(Dojo、YUI、Sproutcore)进行比较,则诸如代码占用空间、CSS/HTML复杂度、调试等问题会变得相当平衡(或者至少可以做出更有用的对比)。仅仅说这些东西在抽象意义下是“缺点”并不真正准确,因为它们主要是任何复杂RIA框架的要求。
关于某些具体点,这个列表(根据来源文章)提到的是Ext 3.0。截至本篇翻译撰写时的当前版本是4.0.7。总代码占用空间实际上自3.0以来已经增加了,但现在Ext随附有一个动态类系统和构建工具,可以根据应用程序的依赖关系创建优化的构建版本。因此,它总体的占用空间很大,但您不必包含所有内容。
CSS/HTML的复杂性是基于Ext JS支持的小部件和布局系统的复杂性而来的。这在RIA世界中很常见,不能与简单的jQuery插件进行比较。顺便说一下,Ext 4.0现在使用SASS/Compass,并带有生成的CSS,因此现在比3.0的情况更容易自定义源样式。
调试在4.0中也相对更容易(再次归功于新的类系统),但肯定比任何静态类型语言如Java(GWT)要困难得多。这是任何基于JavaScript的框架的问题,不仅是Ext。
如果您实现了历史/状态记录(Ext提供两者支持),那么在您的应用程序中添加书签页是完全可能的。这是必须要做的事情,因为它是应用程序特定的(在单个小部件级别有一些自动状态管理),但绝对是可行的。同样,这是一个常见的RIA问题,与Ext无关。你使用框架的目的将决定需要使用哪一个。
非常适合单页面RIA应用程序,其中ExtJS框架只在页面上加载一次,几乎没有手写HTML代码。这意味着该框架可以管理应用程序中的所有内容。
用法有很大不同:您的服务器端框架通过JSP、GSP、ASP等生成HTML,并通过每个页面添加JQuery库来为这些页面添加功能。
ExtJS缺点:
ExtJS优点:
声明:我曾经是一名沮丧的ExtJS开发人员,现在已经足够高超了,真正享受它 :)