我应该从原型移动到jquery吗?

时间:2010-04-01 15:11:28

标签: jquery migration prototypejs javascript-framework

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

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

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

所以我认为迁移应该非常直接,但我想知道从Prototype迁移到jQuery的优点/缺点。

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

修改:一些有用的资源:

8 个答案:

答案 0 :(得分:9)

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

  • JQuery 更快。原型在我见过的所有性能比较中排在最后(随机选择here)。我也有一种长期的主观印象,认为Prototype的整体效果较慢,特别是在较旧的机器上。

  • JQuery似乎更受欢迎,不仅如此,还有Stack Overflow。这意味着更容易获得支持,可用插件和现成代码的数量要大得多。这不是我的主要原因,但加上总体印象是jQuery是技术上更合理的平台,选择变得明显。

我唯一不喜欢的是:

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

评论:关于jQuery编码风格我不喜欢的其他说明。

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

但是说真的。我意识到许多被认为是“jQuery样式”的东西都是完全可选的快捷方式和缩写。尽管如此,从代码可读性和可维护性的角度来看,我发现大量的jQuery代码很多更难以阅读和进入。是的,随着jQuery体验的增长,这将变得更加容易,但是,我希望我的代码即使对于一个完全的局外人也是可读的。关于这一点,jQuery没有走向正确的方向IMO。大部分代码都很简单。迄今为止,这是我对这个伟大框架的唯一主要批评。

方法链接虽然,@ noah,以及像新.delay()这样的东西,或者它的名字是什么,我认为完全摇滚。我不是在反对任何事情。

答案 1 :(得分:6)

据我所知,Prototype和jQuery大多重叠,除了jQuery主要关注DOM操作,ajax,事件等,并没有真正具有Prototype所具有的一些功能,如类,继承等但是,如果你不需要这些东西,只想要一个跨浏览器DOM操作,ajax,事件等的框架,那么我认为jQuery是要走的路。

答案 2 :(得分:4)

您可以将它们一起使用。在jQuery加载后调用jQuery.noConflict();。然后,您必须编写jQuery("whatever")而不是$("whatever")。 Prototype提供了许多jQuery不具备的功能。

然而,Prototype正在走出困境。 jQuery现在是王道,并且有一些很好的理由。如果你想要最新的插件和小部件,jQuery将拥有它们。

Underscore.js提供与Prototype相同的大部分功能,同时不会弄乱对象原型和全局命名空间。 Underscore和jQuery应该很容易从Prototype迁移。

答案 3 :(得分:4)

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

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

答案 4 :(得分:2)

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

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

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

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

框架是移动目标,有时在速度和功能方面相互跳跃。一切都在继续改善。说X比Y更好会随时间变化

我认为Prototype的保存优雅可能是Scripty2。这是一个使用Prototype的惊人的新动画引擎。如果这种情况有所上升(并进入市场,甚至不在Beta中),可能会对Prototype产生兴趣。除此之外,我认为它总是会有它的支持者,但会逐渐消失在主流之中。

答案 5 :(得分:2)

如果你关心另一份工作,可能会转向JQuery。如果你关心美丽,直观的JavaScript坚持原型 - 它不会消失!

答案 6 :(得分:0)

我认为Microsoft has integrated it into the ASP.NET Ajax Framework为jQuery讲世界的事实。我现在的雇主去年对其进行了标准化,我可以找到更多的职位发布,专门询问jQuery和其他任何图书馆。

答案 7 :(得分:0)

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