使用ExtJS UI相比纯HTML + jQuery的优点

11

我认为,ExtJS与jQuery相比唯一的优势就是丰富的UI组件。 构建纯HTML UI,再使用jQuery或其他合适的Javascript库不是更好的选择吗?

3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
27

在特定情况下,ExtJS确实有意义

如果您正在构建类似桌面的Web应用程序(许多内部网络应用程序都是这样的),那么ExtJS是最好的库之一,因为它为您提供了非常干净的对象模型和经过彻底测试的丰富客户端控件。全部以及出色的一致外观和感觉,因此您不必花时间去做所有这些。相反,您将建立应用程序。他们还提供出色的客户支持。我使用过他们的论坛和事件支持,并取得了很好的经验。

如果已经使用ExtJS,我会避免使用jQuery,因为您需要的所有内容也由ExtJS提供,并且针对它进行了优化。如果您将使用它,请完全拥抱它

HTML + jQuery有什么不同之处

要创建一个即可HTML + jQuery丰富客户端侧网格,您需要很长时间,并且该网格将是:

  • 可分页的,
  • 可排序的,
  • 可过滤的,
  • 完全可编辑的,
  • 可使用键盘导航的,并且
  • 在外观和功能上与应用程序的其他部分一致。

更不用说您需要解决所有错误(与控件复杂性成比例)。而这仅仅是一个控件。他们提供了大量的控件。相信我,他们的控件已经在市场上很长时间了,并且真的非常 polished,并且得到了许多浏览器的支持。

如果没有必要,请不要重新发明轮子。

为什么ExtJS与第三方库/控件不同

ExtJS起初是免费开源代码。免费的外观和感觉一致的丰富控件。它们主要由Jack Slocum编写,显然是一个精明而又认真的人,他确实知道自己想要什么,并在编写时非常彻底。

他在提供整个对象模型以及完美成熟的库方面做得非常出色。可以很容易地看出这些控件是由开发人员为开发人员构建的。它稍后发展成为半开放项目(我认为是在第3版中),具有背景收入的可能性。ExtJS库(类似于jQuery的管道代码)仍然是免费的,而庞大的、精心制作的控件集则需要许可证。

整个项目从一个狂热者的车库项目进展到一个完整的产品。所以首先完成、打磨和进展,然后他们把整个东西合并起来,并在同样的前提下继续。所以它因为一个(伟大的)产品而获得了利润。

其他第三方提供商主要受利润驱动=根据利润(需求)生产产品。他们的代码反映了这个事实。ExtJS的传承不同,因此更好得多。

维护

正如@sra所指出的那样,维护也更低,因为代码库更小,意味着更小的漏洞表面和更少的行数需要维护。ExtJS是这个方程中的一个单独的库,由其尊重的所有者进行维护。由于它完全是Javascript,你当然可以扩展它并更改你想要以不同方式工作的特定部分。那些时候我写了很多扩展...在开始使用jQuery后,我错过的第一件事情是名称空间支持和类结构。ExtJS对于.net或Java开发人员来说感觉非常自然,因为它给你一种面向对象的感觉。另一方面,如果你不知道自己在做什么以及如何正确使用它,jQuery提供的是更加过程化的感觉。

我的建议?

如果你认为你的应用程序UI可以利用ExtJS的出色控件直接构建75%,我会毫不犹豫地完全拥抱它,并且不再与jQuery相比较。除非你有实际(除了懒得完全学习ExtJS)包括和使用它的巨大好处,否则不要混合和匹配它与jQuery。

P.S. 我不是Sencha的员工,也没有受到他们的支付。当jQuery刚起步的时候,我是一个使用ExtJS和Asp.net完整项目开发了9个月的开发人员。现在我也是一个重度的jQuery用户,所以我两者都很熟悉。好吧,我不知道从版本4开始的ExtJS,但我猜它只会越来越好。


1
没有更多可说的了!+1 在大型项目中,由于类系统和结构,维护变得更容易。 - sra
@Robert和sra,感谢你们的解释。 我也关心性能问题。有许多可用的jQuery插件用于网格和其他UI组件。我很少使用ExtJS,并发现它会降低页面的性能,可能jQuery可以更快地完成,但不确定。如果我们为预定义的布局(如面板、选项卡、树、弹出窗口)构建HTML(一次开发这样的HTML UI可能需要一些时间,但对于一次来说没问题),并仅在确实需要JavaScript参与的某些复杂组件中使用jQuery,则可以帮助提高性能? - Kulin Choksi
@CoolZeroInfinity:从这个角度来看。当我使用ExtJS开发项目时,应用程序在IE6中运行速度非常合理。ExtJS控件很复杂,但在生产中你不应该感受到速度差异。你可能是与Firebug或其他浏览器开发工具一起运行它的。但如果历史教会我们任何东西,那就是速度每18个月翻一倍,所以你没有什么可担心的。相信我,开发自己的控件永远不是一次性任务。只因为你(显然)熟悉jQuery,没有人说它是万能的解决方案。学习ExtJS,不要混淆... - Robert Koritnik
2
@Robert Koritnik:我也不是jQuery的员工,也没有得到他们的支付 :-)。我更关注性能,非常感谢您的回复。 - Kulin Choksi
在ExtJS中最让人烦恼的事情是无法将组件插入到XTemplate中,因此无法创建完全自定义的页面布局。 我只知道一种可用的解决方法 - 渲染HTML页面,然后使用Ext.onReady将Ext组件渲染到页面并附加事件处理。这类似于jQuery的做法。 - Viacheslav Dobromyslov

0

EXTJS为Web应用程序提供以下功能:

  • 最佳不同的网格控件,具有排序、搜索、可编辑行功能。

  • 窗口弹出和消息框控件具有非常专业的丰富控件。

  • 最佳用户输入和选择控件,适用于表单。

  • Web应用程序有助于部分请求服务,如Http代理。

  • 易于理解,适合初学者开发人员。


0

正如你所说,Extjs提供了多个组件来构建丰富的用户界面。

作为一个偶尔使用Extjs的用户,我想说,如果你需要将大量数据呈现为网格、树形结构,并且这些数据可以来自标准格式,比如XML或Json,那么使用Extjs可以让你在很短的时间内获得非常好的结果/渲染效果。

如果你想要让"纯HTML"具有类似于Extjs组件的功能,你将会花费很多时间进行渲染。

你看过他们的演示页面了吗?


2
是的和否的答案 - 在ExtJS中创建普通的html。但是是的,它被优化用于此,并且因此在复杂情况下可能更快。它也更易于维护。 - sra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,