2013-05-07 77 views

回答

7

jQuery是使用JavaScript构建的库。越抽象你会得到的表现越少。例如,只需使用本机DOM方法选择一个元素,将比使用jQuery做得更快。

所以这个问题并不是“找出哪一个更快”,你已经知道jQuery会变慢。这个问题更像是“值得的表现是否值得?”。是的,大多数情况下,这是因为您在编写代码时节省的时间比您获得的性能更有价值,而大部分时间都是可以忽略的。

另一个因素是你的香草JavaScript代码的质量。 jQuery已经过多年的测试和维护,并且显示。

+0

谢谢。正是我在寻找的答案。对于新手问题再次抱歉 – 2013-05-07 23:49:37

0

你的问题不应该是“我应该使用jQuery还是纯JavaScript”而是“我应该使用哪个库?”。没有人应该用零代码开始一个实质性项目,他们应该至少有一个强大的,经过测试的代码集合,可以很容易地整理成一个库或工具包。

一般库的问题是它必须提供一般解决方案,因此为什么jQuery有4000行代码,任何一个项目可能只需要几百行。有些库有更多的代码行。如果你使用别人的库,你经常会被绑定到他们的更新时间表,最终可能会使用需要不同版本库的插件。

如果您拥有自己的图书馆,或者在您的工作区域开发和维护的图书馆,您可以获得相同的代码重用,并可以裁剪布料以适合该项目。 jQuery(和大多数通用库)是单一的:它是全部或者全部,你不能只包含其中一部分(例如,你可能只想要一个好的函数)。你自己的库可以是模块化的,所以你只包含你需要的代码,并且可以避免一般库必须处理的许多跨浏览器问题。大卫马克的“MyLibrary”是极少数模块化图书馆之一。

此外,跨浏览器的差异正变得越来越少,DOM API越来越丰富,因此使用通用库的需求越来越少。例如。没有人占用document.all了,或者不支持的浏览器也不支持addEventListenerattachEvent。一旦支持IE 6和7可以被删除(几年之后),使用单一的第三方库几乎没有什么理由,模块化将是关键。一切都将是一个插件,不需要基础库,或者基础库将非常小,以提供基本DOM功能的通用API。

+1

虽然“没有人应该用零代码启动实质性项目”具有一定的价值,但人们在**学习* jQuery方面** **的价值要低得多,并且对JavaScript没有任何了解。这基本上导致程序员不知道JavaScript的内部工作是如何工作的,因此发布诸如*“OMG!”这样的问题,为什么不是'$('#myDiv')== $('#myDiv')? “*。在某些时候从零开始有**总是**值;特别是自OP刚刚开始。 – Jesse 2013-05-07 23:37:14

+0

非常感谢您花时间写下所有这些内容。我真的很喜欢你创建自己的图书馆的想法,以满足他们目前正在从事的任何项目的特定需求。这很有道理,一定会听从你的建议。再次感谢您花时间编写所有这些 – 2013-05-07 23:52:30

+0

顺便说一句,“少代码更好”的概念是有缺陷的。 “更少的代码”不是一个很好的理由,可以自己做任何事情。它应该是你最担心的问题,特别是在使用最小化器的情况下。 “较少的代码”通常很难调试和维护,正如许多库常用的函数调用的链接一样。很久以前,软件开发工作的估计集中在功能上,而不是代码行,这个焦点没有改变,特别是因为切割代码可能不到软件开发项目总成本的20%。 – RobG 2013-05-08 02:47:37

相关问题