1

我知道用原生 JavaScript 编码意味着你的代码执行速度比用 jQuery 编码要快,但是要快多少呢?

特别是,如果对于一个非常大的 web 应用程序,我想知道速度的提高是否值得花更多的时间在本机 JavaScript 中进行编码而不是 jQuery?

还是速度上的差异根本没有那么大?

例如,要在 jQuery 中设置 AJAX 请求,您所要做的就是调用$.ajax$.post传递一些参数,但使用原生 JavaScript,您必须根据用户浏览器等创建对象XMLHttpRequestActiveXObject

4

5 回答 5

3

速度上的差异以毫秒为单位——这可以加起来数千个 jQuery 调用。

原因在于,使用 jQuery,它会根据您提供的信息来测试不同的场景,因此它可以以多种方式发挥作用——即使是您永远不会使用的方式。对于您使用的函数,jQuery 仍然对可能的变量和场景执行测试,您永远不会为您的特定应用程序提供它。

这就是让它变慢的原因。这实际上取决于您将对 jQuery 进行多少次调用。

虽然,它也非常兼容跨浏览器,这是一个很大的优势。

我个人会推荐 jQuery,原因有很多。但同样,这取决于您需要使用它的重量,以及您定义的“巨大”差异。

于 2012-10-14T08:40:39.603 回答
1

如果您只想做一个 AJAX 请求,您可以创建自己的迷你框架,该框架包含创建 XMLHttpRequest 并执行与浏览器相关的工作。

与您需要的任何其他功能相同的方式。

然而:事情变得非常复杂。想想动画。jQuery 或任何其他框架会做得更好更快。并跨浏览器测试。

帮自己一个忙,使用现有的框架。

还有一件事:过早的优化是万恶之源。首先找到应用程序中的瓶颈,然后优化该部分。

于 2012-10-14T08:44:10.300 回答
1

测试一下。

选择您的 Web 应用程序的一部分并用 JavaScript 编写它,然后使用 jQuery 执行等效操作。测试性能。

开发优于 jQuery 的 JavaScript 取决于您或团队的技能。jQuery 是久经沙场的代码,它为您抽象了许多浏览器的怪癖。它确实增加了一些开销来满足许多开发用例,但这是许多开发人员愿意支付的价格。

在 JavaScript 中重新创建相同的功能需要技能和知识,同时消除 Web 应用程序不需要的开销。

我推荐你使用 jQuery。但是,一旦 jQuery 成为您的 Web 应用程序的一部分,它就会成为您的代码,因此您必须努力了解它在做什么以及为什么。

于 2012-10-14T09:08:27.050 回答
0

根据我的经验,我认为最好的方法是使用 jQuery 而不是原生 JS。特别是如果您的应用需要 IE6-IE8 的支持。大多数时候,您将花费在修复跨浏览器问题上,而不是专注于开发。

即使您会根据自己的需要制作自己的“迷你框架”,我也不认为它不会像 jQuery 那样具有如此高的质量和速度。但是,如果您将使用 jQuery - 遵循最佳实践,您将不会遇到性能问题,并且您的代码会更小且易于阅读。

我认为你应该只在高度专业化的 Web 应用程序中使用原生 JS。

于 2012-10-14T08:43:18.977 回答
0

在我正在构建的应用程序中,我们将 JQuery 与我们自己的原型结合使用。从用户的角度来看,仅使用直接 JS 的时间差异可以忽略不计。加上 CBS(跨浏览器支持)非常重要。

于 2012-10-14T09:13:32.187 回答