Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery add()性能的替代方案_Javascript_Jquery - Fatal编程技术网

Javascript jQuery add()性能的替代方案

Javascript jQuery add()性能的替代方案,javascript,jquery,Javascript,Jquery,我知道如何将两个jQuery添加到一起 然而,对于我正在从事的一个项目来说,它已经成为一个性能瓶颈。我胡思乱想,想出了一个替代方案,在性能大幅提高的情况下(在这个提琴中约60毫秒比1000毫秒)也得到了同样的结果: var t=$(“#测试”); var tKids=t.children(); var j=$(“开玩笑”); var jKids=j.children(); var z, zMax=30000; var time1=新日期(); 对于(z=0;z我知道出于性能原因,您可能会尝试远

我知道如何将两个jQuery添加到一起

然而,对于我正在从事的一个项目来说,它已经成为一个性能瓶颈。我胡思乱想,想出了一个替代方案,在性能大幅提高的情况下(在这个提琴中约60毫秒比1000毫秒)也得到了同样的结果:

var t=$(“#测试”);
var tKids=t.children();
var j=$(“开玩笑”);
var jKids=j.children();
var z,
zMax=30000;
var time1=新日期();

对于(z=0;z我知道出于性能原因,您可能会尝试远离jQuery API方法,但这值得一试:

var t = $('#test').children();
var j = $('#jest').children();
var added = t.get().concat(j.get());
我不确定
.get()
的速度有多快,但我很难想象它比遍历每一组子项要慢。可以进行jsperf测试

编辑

为子孙后代:

.get()
方法允许我们访问每个jQuery对象下面的DOM节点


如果允许混合“孩子”的顺序,可以减少一些循环

for (z=0; z<zMax; z++)
    {
        var tLen = tKids.length;
        var jLen = jKids.length;
        var maxLen = Math.max(tLen, jLen);
        var allKids = [];
        for(var i = 0; i < maxLen; i++)
        {
            if (i<tLen) allKids.push(tKids[i]);
            if (i<jLen) allKids.push(jKids[i]);
        }
        var opt2 = $( allKids );
    }​

for(z=0;zYou可以阅读:您也可以在这里测试您的JS性能:谢谢,不知道如何使用get()。当迭代30k次时,只会增加大约100ms。还不错。
for (z=0; z<zMax; z++)
    {
        var tLen = tKids.length;
        var jLen = jKids.length;
        var maxLen = Math.max(tLen, jLen);
        var allKids = [];
        for(var i = 0; i < maxLen; i++)
        {
            if (i<tLen) allKids.push(tKids[i]);
            if (i<jLen) allKids.push(jKids[i]);
        }
        var opt2 = $( allKids );
    }​