有什么快速的技巧来提高jQuery的性能?[关闭]

t98cgbkg  于 2023-04-29  发布在  jQuery
关注(0)|答案(9)|浏览(98)

已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

9年前关闭。
Improve this question
有什么快速的技巧来提高jQuery的性能?

mbyulnm0

mbyulnm01#

1.首选简单选择,首先只按ID,其次只按标签名称。通过类名或CSS选择器进行选择需要jQuery遍历DOM,而ID和标记Map到“原生”浏览器DOM函数(getElementById和getElementByTagName)。
1.缓存尽可能多的jQuery对象。
1.将操作范围扩展到根jQuery对象。选择一个共同的祖先元素,并使用find函数查找该元素子元素范围内的元素,而不是单独选择元素。这实际上只有在对公共祖先执行某些操作时才是最优的;否则,查找祖先并对其进行缓存的开销可能超过范围遍历的益处。
1.**不要使用$.each(),**使用for(;;)。它的速度快了十倍以上。

vnjpjtjt

vnjpjtjt2#

Paul Irish最近在jQuery Conference 2009上做了一个关于性能的演讲。这些幻灯片是我见过的最全面的幻灯片之一。
http://paulirish.com/perf/
http://www.slideshare.net/paul.irish/perfcompression

41ik7eoe

41ik7eoe3#

引用google's CDN上的文件,以便它们加载得更快。

tyu7yeag

tyu7yeag4#

而不是做:

$("#foo").addClass('test');
$("#foo").removeClass("bar");
$("#foo").slideUp('slow');

您可以:

$("#foo").addClass('test').removeClass('bar').slideUp('slow');
uoifb46i

uoifb46i5#

它总是适用于普通JavaScript:alwayscache,cache,cachee.例如:

var $this = $(this);
$this.css('width', parseInt($this.css('width')) + 20 + 'px');
mwg9r5ms

mwg9r5ms6#

提高jQuery的速度是不可能的,这取决于你的代码有多高效,浏览器的JS解释器有多高效,以及运行代码的计算机有多快。你也许可以尝试重写jQuery以使其更高效,但这需要时间,而且它很可能已经非常优化了。

wi3ka0sx

wi3ka0sx7#

确保效率的最好方法之一是确保 * 选择器尽可能具体地针对元素/类等。

  • $(选择器)
v9tzhpje

v9tzhpje8#

我认为您要求的是代码优化,但由于性能高度依赖于所使用的JavaScript引擎,我想提一下Google Chrome Frame

b91juud3

b91juud39#

知道何时使用纯JavaScript而不是JQuery方法。

jQuery是对JS+DOM的补充,而不是完全替代它。你不必为你写的每一行代码都使用jQuery。有些东西没有它表达得更简洁;很多事情没有它会更快。了解DOM提供了什么,这样您就不会写出我在这里看到的一些愚蠢的例子了。
例如:

var ix= $('#'+selectname).children().index($('#'+selectname+' option:selected'));

更快,更易于阅读,不会因ID中的意外字符而中断:

var ix= document.getElementById(selectname).selectedIndex;

相关问题