-2

我开始使用 Javascript 进行 HTML5 移动开发,但注意到我也可以使用 jQuery 库。我的问题是,除了要求您编写更少的代码之外,jQuery 是否还能做任何事情?Javascript 的性能更快吗?很抱歉这个新手问题,但我找不到答案,并且对差异很感兴趣。提前致谢

4

2 回答 2

7

jQuery 是一个用 JavaScript 构建的库。你抽象的越多,你得到的性能就越少。例如,仅使用本机 DOM 方法选择一个元素将比使用 jQuery 更快。

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

另一个因素是原生 JavaScript 代码的质量。jQuery 已经经过多年的测试和维护,它显示出来了。

于 2013-05-07T23:04:14.057 回答
0

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

通用库的问题在于它必须提供通用解决方案,因此 jQuery 有 4,000 行代码,而任何一个项目可能只需要几百行代码。一些库有更多的代码行。如果您使用其他人的库,您通常会受到他们的更新计划的约束,并且最终可能会使用需要不同版本库的插件。

如果您有自己的库,或者在您的工作区域开发和维护一个库,您可以获得相同的代码重用,并且可以剪裁适合项目。jQuery(和大多数通用库)是整体的:要么全部要么全无,你不能只包含一个或另一个部分(例如,你可能只需要一个好的addListener函数)。您自己的库可以是模块化的,因此您只包含您需要的代码,并且可以避免许多通用库必须处理的跨浏览器问题。David Mark 的“MyLibrary”是为数不多的模块化库之一。

此外,跨浏览器的差异变得越来越少,DOM API 变得越来越丰富,因此使用通用库的需求越来越少。例如,没有人再考虑document.all,或者为不支持addEventListenerattachEvent的浏览器而烦恼。一旦放弃对 IE 6 和 7 的支持(几年后),就没有理由使用单一的第三方库,模块化将是关键。一切都是插件,不需要基础库,或者基础库非常小,无法为基本的 DOM 函数提供通用 API。

于 2013-05-07T23:29:40.170 回答