17

我有一个很大的 jQuery 代码,我正在考虑我的函数的速度性能。当一个元素被点击(mousedown)我需要分配一个图像作为背景。我可以通过两种方式做到这一点:

$('#element li.class').css({"background":"someimageURL"});

或者

$('#element li.class').addClass("someclass");

其中“someclass”具有实际的 CSS 背景图像。在这种情况下,女巫功能效果更好。

有没有办法测试各种功能的速度?

谢谢

4

2 回答 2

16

我几乎可以肯定.addClass()会是两者中更快的一个。这基本上涉及在元素上附加另一个类名,而另一种方法则需要遍历元素样式并设置许多显式规则。

通过设置几个 css 规则$.css()可能没什么好担心的,但是如果您发现自己设置了很多,通常是时候创建一个类并根据需要应用/删除它了。

我已将这两种方法的逻辑提取到一个位置供您查看,如果您愿意的话。

http://pastie.org/842738

于 2010-02-25T18:24:14.970 回答
11

添加类绝对更快,请参阅$.addClass()vs $.css()vs $.removeClass().addClass()vs 普通 js 的性能测试 - http://jsperf.com/jquery-css-vs-addclass-speed/2

于 2014-01-15T23:09:43.610 回答