0

我想知道如果我id在一次调用 jQuery 函数时对一些 ' 进行分组,或者逐行调用它(idafter id),这是否会提高性能。

暂时是这样的:

$('#culetType').combobox();
$('#girdle').combobox();
$('#polishLinesIntensity').combobox();
$('#burnmarksIntensity').combobox();
$('#scratchesIntensity').combobox();
$('#damagesIntensity').combobox();

那么,如果我这样做会不会是一个性能改进:

$('#culetType, #girdle, #polishLinesIntensity, #burnmarksIntensity, #scratchesIntensity, #damagesIntensity').combobox();

除了阅读不愉快的事实。

我知道我可以给所有这些id'sa class,这将使我只需要一个电话。

那么这是否会提高性能?

4

2 回答 2

1

在较新的浏览器中,使用单个选择器会稍微提高性能,因为 jQuery 使用内置方法来运行选择器。创建单个 jQuery 对象并对其中的所有元素进行操作比创建一堆 jQuery 对象要快一些。

在较旧的浏览器中,解析包含单个 id 的选择器会稍微快一些,但创建多个 jQuery 对象会稍微慢一些,因此这些方法的执行情况大致相同。

于 2013-04-08T12:29:00.107 回答
1

据我所知,写作$()每次都会调用 DOM。所以即使在你调用一些元素时更好:

el = $('#myEl');
el.firstAction();
el.secondAction();

代替

$('#myEl').firstAction();
$('#myEl').secondAction();

所以我认为拨打一个电话$('...,...,...')会更快,但它会是小的提升。

但是您需要记住,在打一个电话的情况下,您不能执行以下操作:

$('#culetType').combobox();
$('#girdle').combobox({property: false});
$('#polishLinesIntensity').combobox();
于 2013-04-08T12:49:36.700 回答