JQuery与ExtJS比较

77

我们计划开发全新的GUI界面。我们曾经在旧产品中使用过JQuery,对其轻松、优雅和快速的表现非常满意。

我们听说过ExtJS,它也拥有AJAX和许多其他功能。

我们想只使用其中一个。

根据您的经验,哪个更好?

6个回答

88

我广泛使用jQuery并喜欢它。我已经多次审查过ExtJS,并希望有机会在某个时间点使用这个库。以下是我的看法。

jQuery

JavaScript编程的杂物抽屉。如果你愿意挖掘、使用一些胶布和超级胶水,并且总体上拥有一群能够锤炼代码的开发人员,那么他们就拥有你需要的一切。jQuery非常棒!

它被用于比你想象的更多的地方。然而,像Drupal和其他社区支持的框架/库一样,当你获得免费支持时,你会得到你所付出的东西。你可以通过jQuery完成所有工作,但有时你需要铲子、手电筒和毅力。

此外,它有非常好的文档(与PHP的在线文档齐平),并且有大量的示例代码和博客文章。

将吸引那些喜欢做小玩意儿和“高级脚本编写者”的人,他们不介意Google一个短语以找到可以用来搭建问题和加速开发的示例。

ExtJS

由营利性公司专业开发,这些更像是控件(在Visual Studios的上下文中)而不是小部件或插件。它们有意完整且强大,注重细节和更高级别的组织结构,比我认为存在于jQuery的野外要高。ExtJS是一个“一分价钱一分货”的产品,它的生死取决于它的回报价值。

将吸引接受过专业培训的“程序员”,他们期望进行广泛测试,并且在控件的开发中有更高级别的严密性。

最终建议

这实际上取决于您的团队和客户。如果你的团队更喜欢DIY并喜欢粘合东西并将其推向市场,请选择jQuery。它对于任何情况都非常强大。如果你有一个非常有序和专业的团队,ExtJS可能是一个不错的选择,但jQuery也是可行的。我不认为需要分割你的知识库并同时使用两者,但事实上,如果你这样做,请在客户端使用ExtJS,在管理控制台中使用jQuery。我没有看到反过来会有什么好处。

另外,如果你需要管理控制台,可以考虑使用 TIBCO。可能有点过头,但非常有趣。


6
关于这两个问题写得非常好。有趣的是,我对客户端和管理端的结论恰恰相反 :) - Ben
1
我猜这个决定与客户看到什么以及管理控制台的任务有关(调整用户帐户与SCADA),我的想法是客户应该看到资金,而管理控制台应该只有必要的功能,但这并不绝对。老实说,除非它是遗留代码,否则我很难真正支持代码拆分。为什么要重写您已经使用jQuery编写的代码?除非ExtJS在交付时间和/或客户支持度量方面提供了实际和可预测的改进,否则这听起来像是浪费金钱。 - Jared Farrish
7
如果您计划使用Ext,请注意以下一些额外的说明。从Ext 4开始,在性能方面需要考虑很多因素,包括渲染和实际负载。它不是一种“fire'n forget”的技术。对于需要响应性能的外部网站,我不会真正推荐使用Ext而是使用jQuery。但对于内部工具和其他企业类型的应用程序,Ext是一个不错的选择。 - Asken
1
@asken... Xero在其整个Web界面上使用ExtJS,非常响应迅速。 - Dawesi
此外,ExtJS 在很大程度上减轻了您编写 HTML 的负担,而 jQuery 需要与您手工编写的 HTML 一起使用。但是,相反地,对于某些简单的 UI 元素(如组合框),ExtJS 创建了不必要且较重的表格结构。 - user286806
显示剩余2条评论

23
贾里德·法里什(Jared Farrish)的回答已经很详细了。 我在不同的项目中都使用过。 ExtJS在大小和允许您执行的操作方面都比较重。如果您需要复杂的Web应用程序界面,它具有窗口、表格等出色的控件,并且看起来非常流畅。 Ext论坛社区通过他们的论坛非常有帮助。 话虽如此,与jQuery相比,它更加“死板”,并且需要更长的学习曲线才能开始,但是如果您正在寻找复杂的UI,则将在未来得到回报。 因此,jQuery的好处在于它可以更快地推动您的项目,而且实现新功能时更容易“尝试”。 它们都适用于自己类型的应用程序。我实际上在一个项目中都使用了这两个工具,广泛的管理(许多窗口和部分)使用ExtJS构建,前端需要更快的周转以调整事物但交互UI受限制则使用jQuery构建。 希望这有所帮助

12

我不同意 jQuery 的学习曲线比 ExtJS 快的观点。ExtJS 中的每个组件都在网站上有详细的示例,并且 API 文档非常好,结构清晰、易于使用和完整。

你的选择取决于你的界面。更像 Web 2.0 的闪亮界面可能在 JQuery 中稍微容易一些,而 ExtJS 界面看起来很漂亮,但非常应用程序化。话虽如此,如果你想要创建一个非常复杂、数据密集的界面,我认为两者没有可比性。ExtJS 允许你像后端一样编程你的界面,完全面向对象。如果你不喜欢默认组件的某些行为,你可以覆盖它。它非常容易创建可重复使用的组件。在 ExtJS 3 中引入了一个名为 Direct 的层,它消除了 Ajax 客户端-服务器通信所带来的所有麻烦,并自动批处理多个调用,减少了你需要为接口提供数据的服务器请求次数。我可以继续说下去,但对我来说,ExtJS 是个救星,我无法在为客户计费的时间内创建高度复杂的界面。

祝你选择顺利, Rob


2
尝试使用TreeLoader与其他数据格式,它们仅支持一种格式,甚至不是常规的REST风格JSON返回。这方面没有任何文档。一旦您需要从任何类方法中获得其他功能,您就必须“覆盖”即复制/粘贴并使用自己的更改。我相信有些方法可以用super覆盖,但Crockford说这在JS中是一件愚蠢的事情。 - Drew
@Drew 我很想看看这方面的 JQuery 和 ExtJS 4 的要点。我正在考虑在我的一个重度表单项目中使用 ExtJS4。谢谢 - cbmeeks
8
好的,那就是关于版权问题,如果我发布了一个包含ExtJS4的主旨摘要,我可能会涉及版权违规。 我在一个项目中评估了2个月的ExtJS3,这个框架感觉非常僵硬和不易改变。 我发现自己需要修改小部件以使它们可扩展,示例仅对特定类型的情况有效。 此外,许多示例并非由Sencha完成,而是在其论坛上通过付费获取。 我建议使用YUI,他们更多地使用自己的产品,并提供强大的文档网站。 - Drew
2
就像任何东西一样,ExtJS并不适合所有人。如果你感觉它太过僵硬,那么还有很多其他可能更适合你的选择。对我来说,ExtJS绝不僵硬。没有一个框架能让我以结构化的方式创建非常复杂的应用程序而不需要重复造轮子100次。除此之外,我发现这个框架非常灵活和宽容。至于你提到的文档问题,我真的不明白,我认为这份文档比我知道的任何其他文档都要好。 - Rob Boerman

12

我刚开始在两个不同的项目中使用它们(Ext 4和JQuery)。是的,Ext似乎更适合企业级应用,但学习JQuery的文档和内容非常好。另一方面,由于大多数文档都参考Ext 3,所以在Ext 4上尝试做事情非常令人困惑。

所有关于JQuery的书籍和教程迄今为止都比Ext让我获益更多。

需要注意的是,我在JavaScript方面的经验有限。


4
让我们来看看。EXT有一个陡峭的学习曲线,需要正确掌握,但它非常强大。这是我使用过的唯一一个JavaScript库,我会称之为一个真正的“框架”(在这方面类似于我没有使用过的YUI)。在4.x版本中,Sencha已经全力承诺支持MVC模式,这吸引了很多有经验的程序员。
另一方面,jQuery使得简单的事情变得容易,但在我的经验中,几乎不可能做任何复杂的事情。
为什么要限制自己只使用这两个?例如,看看MooTools。它是一个强大、灵活、可扩展的库,你不必像用jQuery那样猜测它是如何做事情的,也不必使用原生的JS来执行除了简单的DOM操作或JSON加载之外的任何操作(就像使用jQuery!)。
我注意到没有人提到Dojo,它也非常强大、非常复杂,在我办公室里关注其他团队时,我看到它在浏览器中很重。
EXT使用一些附加工具,比如compass(在ruby中运行)和YUI compressor,帮助你输出非常高效、削减下载包的完成站点后的文件。我用引号括起来的“完成”是因为我认为这是EXT的缺点。毕竟,网站几乎永远不会完工,而这个过程大致类似于编译Java应用程序,如果你改变了任何东西,你必须重新进行整个输出过程。
你可以直接从盒子里得到很多的东西,但这也意味着有很多要学习和计划以及深思熟虑才能执行一个响应式、好看的项目。在旧时代,他们称之为“纪律”,但这些日子已经不太流行了(更多信息,请参见“jQuery”)。
但是我没有意见!

3

我只回答这个问题,因为它是“jquery vs extjs”搜索的第一个结果。和这里的一些人一样,我专业上也用过两种技术。我尤其喜欢第一个回答。对于我来说,如果我要建立非常小的应用程序,并且有非常小的团队,那么我肯定会选择jQuery。然而... 如果你正在与大型团队合作,则将jQuery的工作分配可能不容易实现一个用户故事。使用ExtJS,他们真正拥抱OO范例,并使其易于维护。此外,您可以使用它们的MVC将工作分配给开发人员。但是,它有陡峭的学习曲线。说“看看示例,你就行了!” 的人显然不懂如何编写良好的extjs代码。人们确实需要在解决ExtJS UI部分之前学习ExtJS Core...虽然这真的是公司没有好的开发文档的错...好消息是有像《ExtJS In Action》这样的书籍来拯救。总的来说,我会使用ExtJS,因为它比jQuery更加结构化。当然,jQuery的好处在于灵活性...然而,太多的灵活性可能会破坏项目...仅仅因为你可以在自己的眼睛里用超级胶水粘合乐高积木并不意味着你应该这样做。如果您有钱,可以使用ExtJS。


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