18

我有一个相当大的代码库,它依赖于 MooTools v1.11,并且即将转换为 1.2 版。由于这是一个相当大的改革,我玩弄了转换为 jQuery 的想法。

任何人都对是否更新到 jQuery 或只是坚持使用 MooTools 有建议?

我主要将 MooTools 用于 Ajax、拖放和一些小效果。

4

16 回答 16

28

如果没坏。不要修复它。

jQuery 可能有 X 或 Y,但如果一切都依赖于 MooTools,那么从 MooTools 转换你可能需要做很多工作。

如果您在整个网站中广泛使用 MooTools,请保留它。但是,如果您只有 2 到 3 页的影响较小的页面……更改可能是值得的。

于 2008-10-03T22:39:42.373 回答
17

如果您无论如何都在升级,那么它可能值得研究。

jQuery 似乎正在成为 One True J​​avascript 库(鉴于 MS 和其他人已经决定接受它),所以如果这是您打算使用一段时间的代码,那么切换可能是个好主意在某些时候(如果只是因为会有更多的地方获得帮助和插件代码,因为它很可能会继续流行一段时间,这将有助于确保代码的长期灵活性和可维护性)。因此,鉴于您无论如何都必须转换它,现在可能是最好的时机。

我认为 jQuery 成为使用框架是一件好事。这不是我的选择(我也喜欢 MooTools),但它肯定是一段优秀的代码,并且至少与它的竞争对手的竞争力完全吻合。我很高兴看到任何形式的一致性,我将在某个时候将我的代码移至 jQuery。

于 2008-10-04T03:49:33.997 回答
13

为什么要做开关?我已经将代码库从 1.11 转换为 1.2,而且它非常快速和简单(而且我将它用于多个效果)。

jQuery 可能会被 MS 采用,根据一个站点的说法,它在 IE 中表现更好——但这与它在 IE 中的表现无关,而是关于它在您的站点上的运行情况(IE 是您站点上的主要参与者吗?)。

你知道 jQuery 吗?如果你不这样做,那么你必须从头开始重写代码,你将完全重写你的代码。

或者你只是想找到理由告诉你的经理“我们应该在 jQuery 中做这件事”,因为你想学习它?

至于“唯一真正的框架”——这是一个荒谬的说法,只有用户才能做出,而不是开发人员。

于 2008-10-04T15:13:50.883 回答
8

从 MooTools 1.1.1 切换到 1.2.1 并不是什么大问题。http://github.com/mootools/mootools-core/wikis/conversion-from-1-11-to-1-2

甚至还有一个兼容层使 MooTools 1.1.1 代码在 1.2.x 中起作用。您可能需要在这里和那里手动修复一些事情,但这相对较小。

切换到 jQuery、YUI 或 DOJO 或其他任何东西都需要完全抛弃所有代码并重新声明。我的任何客户都不会允许这种浪费。

此外,如果您习惯于使用适当的 MooTools 类进行编码,那么 jQuery 可能会给您的系统带来巨大的冲击。并不是说 jQuery 强迫你编写不可读和不可维护的代码,当然可以用任何语言编写非常可读和可维护的代码。但是 jQuery 没有内置的 Class 系统来帮助你。

特别是对于大型代码库,保持代码井井有条非常重要。

我当然很偏颇。

于 2008-10-17T11:06:37.900 回答
4

有一个关于它的网站描述了哲学jqueryvsmootools.com的差异

我认为这就是它归根结底的原因。以功能性 DOM 为中心的方法或面向对象的 JavaScript 方法。

于 2009-05-19T00:49:30.490 回答
4

正如其他人所指出的,jQuery 是一个库(主要用于玩弄 DOM),Mootools (1.2) 是一个成熟的 javascript 框架,它允许您以面向对象的方式组织代码,从而使其易于维护。

我建议您阅读本文以真正了解每一个的真正含义(jqueryvsmootools.com)

还有这个其他链接,所以你知道如何从两个世界中获得最好的;):

http://ryanflorence.com/object-oriented-jquery-with-mootools-pigs-take-flight/

最后归结为需要什么。我的一般建议:如果你需要一些快速的片段并幻想你的 web 应用程序,单独使用 jQuery 是好的;如果您打算以 javascript 为中心进行开发,那么您真的应该尝试 mootools:代码扩展,您最好做好准备。

要从 Mootools 1.1 升级您的代码,您可以使用升级助手,它将帮助您通过 javascript 控制台识别冲突代码 (mootools.net/blog/2009/12/31/mootools-1-1-upgrade-layer-贝塔/)

[抱歉只发布了一个活动链接,这是我的第一个答案]

于 2010-08-26T02:28:13.073 回答
3

这取决于您对 jQuery 的了解程度以及您的截止日期。如果你很了解它,它确实需要更少的代码行,这意味着你的客户的带宽更少。

此外,如果您查看此站点,您会发现在领先的浏览器 IE 中,jQuery 比 Mootools 具有更好的性能。

话虽如此,如果在 Mootools v1.11 中一切正常,你为什么要更新脚本呢?就像之前的海报说的那样,如果它没有被打破......

如果它在 Mootools v1.11 中不能正常工作,你怎么知道它会在 Mootools v1.2 甚至 jQuery 中工作?投入大量的开发时间并且要么有一些相同的错误,要么因为您使用的框架而引入新的错误,这将是一种耻辱。

于 2008-10-03T22:48:54.773 回答
3

在这一点上,Slickspeed 变得完全不重要了,无论如何选择器都太快了。另外,您也知道,Mootools 开发团队的成员 Herald Kirschner 的 Sly 刚刚发布了 Sly,这是一个击败 Sizzle 的选择器引擎。关于动画的东西是不选择由其中一张海报留下的 mootools 的决定性因素基本上是倒退,Mootools 多年来一直是动画之王。无论您选择什么,它都会起作用。Mootools 有一种更经典的感觉,我认为这让我有条不紊,jQuery 更多地基于函数,并没有那么冒险进入类。一个增加本机类型,另一个不增加,这是一种不同的策略,仅此而已。

  • 丹尼尔
于 2009-03-30T07:22:13.873 回答
3

我对 Mootools 很满意。我曾多次尝试尝试 jQuery,因为这些天越来越多的人在使用它,但不知何故,我仍然没有像 Mootools 那样获得好的 OO 功能。我不太喜欢 jQuery 的另一件事是通过添加 hashkey(#) 来使用美元函数获取 id。如果您想使用框架创建 html id,这可能会出现问题。如果我是你,只需升级到最新版本的 Mootools。Mootools 根本不是一个糟糕的库。

于 2009-07-22T11:02:22.403 回答
3

在您的问题中,您提到您将 MooTools 用于“Ajax、拖放和一些次要效果”。虽然 Mootools 可以很好地做到这一点,但(我可能会因为这样说而受到抨击)在我看来,你并没有真正出于正确的原因使用 Mootools。我们在应用程序中使用 Mootools,实际上我们不能考虑用 JQuery 来代替它。如果目标是编写您组织中的其他应用程序可以利用的面向对象的、长期可维护的代码,那么 Mootools 就胜出。

仅选择器速度是一个错误的判断标准(尽管我相信 Mootools 现在就在那里)。我们代码中的大多数地方已经引用了我们想要更改的元素。一旦你拥有了元素,大部分时间都花在实际操作 DOM 上,并且在我们的内部测试(将尝试发布它们)中,在我们执行的通常类型的操作中,Mootools 比 JQuery 快得多。我们的应用程序是我们依赖先前构建的 Mootools 控件(由我们或其他人构建)来使用来自 Web 服务的数据创建应用程序屏幕的那种。

于 2010-02-27T17:07:42.007 回答
2

评估您是否有程序员的时间来进行大修。
这样做意味着您将从头开始重写代码。这再次意味着您将不得不经历功能、审查和测试、修复错误等循环。也就是说,对 JavaScript 不太熟练的程序员所造成的最重要问题之一是大多数代码访问 DOM 元素往往会造成内存泄漏(这是大多数 Web 开发人员经常遇到的情况)。jQuery 本质上为减轻这种情况做了很多工作。或者更确切地说,jQuery 从 JavaScript 中移除了 JavaScript。
第二。迁移到 jquery 的更令人信服的原因之一是您的 JavaScript 代码量将显着减少。这对于客户端代码密集型页面是有意义的。jquery 的简洁性也可以让您轻松地查看代码。
我工作的公司 (support.com) 拥有大量的 Mootools 代码。在 2008 年初(经过几个小时的激烈辩论——我反对迁移到 jQuery),我们开始分阶段迁移到 jQuery。直到今天我都没有后悔过。

于 2008-10-04T03:24:34.700 回答
2

这个论点很无聊,Mootools 是 OO,所以形成适当的 OO 背景的人比 PHP4 或 HTML 背景的人更欣赏它的智能。

于 2009-10-15T22:24:04.900 回答
1

我可以为这种迁移给出的唯一令人信服的理由是,如果进行切换会减少您必须维护的代码量,和/或使事情变得更简单。这种转换通常涉及大量工作,因此您希望能够在所有工作完成后返回并说“是的,这是值得的”。

于 2008-10-03T22:43:03.490 回答
1

您应该根据应用程序的目的做出此选择。

jQuery 对于动画来说非常酷,但是我觉得 Mootools 更复杂,所以如果重要的是应用程序而不是动画坚持 Mootools

速度也是这方面的一个主题。到今天为止,Mootools 的性能稍微慢一些,但我宁愿在 Mootools 1.3 发布之前不关注它。

在http://slicktest.perrohunter.com查看最新框架的性能

于 2009-02-17T01:05:09.300 回答
0

JQuery 是一个较小的代码库,具有更广泛的支持。如果它满足您的需求,它可能是一个很好的开关。我想说的是,您需要权衡的是迁移工作和学习曲线是否值得付出努力,而不是更广泛的功能集、更小的代码大小和流行度以及对 JQuery 的支持。

如果 MooTools 版本之间的变化真的那么大,那么迁移可能是合理的。

于 2008-10-04T15:19:13.743 回答
0

jqueryvsmootools网站上提到的文章说得很好:

如果 jQuery 让 DOM 成为你的游乐场,那么 MooTools 旨在让 JavaScript 成为你的游乐场

所以,再加上这里的答案“如果它没有坏,就不要修复它”,我想说的是解决你的需求而不是公众舆论。

鉴于您的网站已经在 Mootools 中,您需要评估 jQuery 是否提供了 MooTools 不提供的任何您需要的东西;以及转换的麻烦是否小于编写扩展的麻烦。

看起来 jQuery 有能力让你快速使用 DOM,但所有额外的花哨的东西和其他工作领域(如日期)都需要一个插件。

这也帮助我回答了我自己的问题!

There are some areas where they don't overlap, which is a pity. GUIs are easy to put together in jQuery, with lovely widgets and animations. MooTools, I find, either have sets with too few features, or are too heavy for general web use.

于 2010-09-09T15:02:58.323 回答