8

最后,我一直觉得jQuery正在慢慢成为 JS 库中的事实标准(我可能错了!),或者至少它比其他框架更活跃。

例如,我一直在寻找像 Componente 这样的优秀开源日历,并找到了基于 jQuery 的http://fullcalendar.vinsol.com/ 。

我们一直在用 Prototype 做一些很小的事情,比如它的选择器功能(主要是$作为 的快捷方式document.getElementById),在页面加载时执行一些 JS 并发出一些非常简单的 Ajax 调用。

所以我想迁移应该很简单,但我想知道从 Prototype 迁移到 jQuery 的利弊。

另一方面,我想将它们两个放在一起并不是一个好的选择,特别是考虑到迁移应该很简单。我对吗?

编辑:一些有用的资源:

4

8 回答 8

9

Prototype 和 JQuery 涵盖了非常相似的领域。多年来,我一直使用 Prototype 作为我的主要 JS 框架,并且我正在迁移到 JQuery。原因如下:

  • JQuery更快。在我见过的所有性能比较中,原型排在最后(此处随机选择)。我也有一个长期的主观印象,即 Prototype 的效果总体上较慢,尤其是在旧机器上。

  • JQuery 似乎不仅在 Stack Overflow 上更受欢迎,而且在 Stack Overflow 上也更受欢迎。这意味着更容易获得支持,并且可用插件和现成代码的数量要多得多。这不是我的中心原因,但加上 jQuery 是技术上更完善的平台的总体印象,选择变得显而易见。

我唯一不喜欢的是:

  • JQuery 代码看起来很糟糕。我非常喜欢 JQuery 及其哲学,但我经常讨厌看代码。如果有人想出一种 JQuery 方言,它看起来像普通的 JavaScript 一样漂亮和结构化,我很乐意加入。:)

重新评论:关于我不喜欢 jQuery 的编码风格的附加说明。

一句话:括号。成千上万的人:)

不过说真的。我意识到很多被认为是“jQuery 风格”的东西是完全可选的快捷方式和速记。尽管如此,从代码可读性和可维护性的角度来看,我发现大量的 jQuery 代码更难阅读和理解。是的,随着 jQuery 经验的增长,这将变得更加容易,但是,我希望我的代码即使是外人也能阅读。在这方面,jQuery 并没有朝着 IMO 的正确方向发展。大部分代码都很丑陋。这是迄今为止我对这个伟大框架的唯一主要批评。

不过,方法链,@noah,以及新的.delay()或它的名字之类的东西,我认为完全摇滚。我并没有反对这一点。

于 2010-04-01T15:21:36.207 回答
6

As far as i know, Prototype and jQuery mostly overlap, except that jQuery focuses mainly on DOM manipulation, ajax, events, etc, and doesn't really have some of the capabilities that Prototype has, like classes, inheritance, etc. However, if you don't need these things, and only want a framework for cross browser DOM manip, ajax, events, etc, then I think jQuery is the way to go.

于 2010-04-01T15:16:59.807 回答
4

You can use them both together. Just call jQuery.noConflict(); after jQuery loads. Then you'll have to write jQuery("whatever") instead of $("whatever"). Prototype offers a lot of functionality that jQuery does not.

However, Prototype is kind of on the way out. jQuery is king now, and for some pretty good reasons. If you want the latest plugins and widgets, jQuery is going to have them.

Underscore.js offers most of the same functionality as Prototype while not messing with object prototypes and the global namespace. Underscore plus jQuery should make migrating from Prototype pretty straight forward.

于 2010-04-01T15:19:00.020 回答
4

直接回答您的问题:是的,您应该切换。是的,你是对的。

我知道你说你不喜欢括号……你能提供一段你认为漂亮的原型代码(我会用 jQuery-itize 进行比较)吗?

于 2010-04-01T16:48:57.100 回答
2

如果您关心获得另一份工作,可能会转到 JQuery。如果你关心漂亮、直观的 JavaScript 坚持使用 prototoype - 它不会消失!

于 2010-04-02T00:51:24.933 回答
2

自 2006 年以来,我一直在使用 Prototype,我赞同 Pekka 对丑陋代码的感受。原型更优雅。

我一直是 Prototype (+Scriptaculous) 社区的坚定支持者,但遗憾的是,Prototype 正在失去思想份额和市场份额。职业生涯可以建立在了解 jQuery 之上,而不是 Prototype。

似乎 jQuery 人似乎更喜欢使用插件,但不知道它们是如何工作的,而 Prototype 人似乎是更铁杆的程序员,并且倾向于自己构建他们需要的东西。

话虽如此,我向 jQuery 的过渡并没有那么痛苦。功能大致相同,只是名称不同。有更多可用的文档和示例代码,使其更容易上手。

框架是移动的目标,有时在速度和功能方面相互跨越。一切都在不断改进。说 X 比 Y 好会随着时间而改变

我认为 Prototype 的可取之处可能是Scripty2。这是一个使用 Prototype 的惊人的新动画引擎。如果它流行起来(并进入市场,它甚至还不是 Beta 版),那么对 Prototype 的兴趣可能会重新抬头。除此之外,我认为它总会有它的支持者,但会逐渐淡出主流。

于 2010-04-01T15:57:33.823 回答
0

我认为Microsoft 已将其集成到 ASP.NET Ajax 框架中的事实说明了 jQuery 的世界。我现在的雇主去年对其进行了标准化,我可以找到更多专门要求 jQuery 和任何其他库的职位发布。

于 2010-04-01T16:13:15.353 回答
0

我觉得你应该。我虔诚地使用 jquery,而且我不是 Javascript Pro。我认为它的易用性是它最强大的功能之一。

于 2010-04-01T17:03:44.327 回答