gpt4 book ai didi

javascript - jQuery add() 替代性能

转载 作者:行者123 更新时间:2023-11-30 18:16:55 24 4
gpt4 key购买 nike

我知道如何将两个 jQuery 加在一起 ​​using add()

但是,对于我正在做的一个项目来说,它已经成为了一个性能瓶颈。我摆弄了一下,想出了一个替代方案,它在性能显着提高的情况下给了我相同的结果(~60 毫秒,而在这个 fiddle 中为 1000 毫秒):

http://jsfiddle.net/jedierikb/rkAP4/1/

var t = $("#test");
var tKids = t.children( );
var j = $("#jest");
var jKids = j.children( );

var z,
zMax = 30000;

var time1 = new Date();
for (z=0; z<zMax; z++)
{
var opt1 = tKids.add( jKids );
}
var time2 = new Date();

for (z=0; z<zMax; z++)
{
var i,
iMax,
allKids = [];
for(i = 0, iMax = tKids.length; i < iMax; i++)
{
allKids.push( tKids[i] );
}
for(i = 0, iMax = jKids.length; i < iMax; i++)
{
allKids.push( jKids[i] );
}
var opt2 = $( allKids );
}
var time3 = new Date();

console.log( (time2-time1) + " v " + (time3-time2) );​

注意:我不需要 add 的好处,例如保证 dom 元素排序和删除重复项。

我想知道是否有一种方法可以使这种方法比我正在执行的所有迭代更简洁或更紧凑。或者也许有更好的方法。

最佳答案

我知道您可能出于性能原因试图远离 jQuery API 方法,但这值得一试:

var t = $('#test').children();
var j = $('#jest').children();
var added = t.get().concat(j.get());

我不确定 .get() 的速度有多快,但我很难想象它比遍历每组子项要慢。可以做一个jsperf测试...

编辑

为了后代:http://api.jquery.com/get/

The .get() method grants us access to the DOM nodes underlying each jQuery object.

关于javascript - jQuery add() 替代性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13032332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com