gpt4 book ai didi

JavaScript:提高 FOR 循环的性能以阻止浏览器锁定?

转载 作者:行者123 更新时间:2023-11-28 09:16:03 29 4
gpt4 key购买 nike

我有一个对象数组,我一次循环遍历该数组一个对象,然后进行几次检查以查看该数组中的每个对象是否满足特定条件,如果该对象满足此条件,则复制一个属性将此对象放入数组中(该属性还包含另一个对象)。

for(var v = 0; features.length > v; v++){
var feature = features[v];
//If the feature is on the map then we want to add it
if(feature.onScreen()){
dataArray.push(feature.attributes);
}
}

现在,由于某种原因,如果这个对象数组很大(5000+),那么这个操作就会变得非常昂贵,并且浏览器只会锁定一两秒(有时甚至更多)。

我无法详细了解代码的作用,但我想知道给定这个循环,让浏览器休息的最佳方法是什么,比如说每 500 次迭代,这样它就不会锁定然后继续等等。

谢谢

最佳答案

不确定...但是将该代码放入一个函数中,然后分解并调用该函数(例如每个 xM)怎么样?

例如,

var LastPos = 0;

function DoLoop()
{


for(var v = LastPos; features.length > v; v++){
var feature = features[v];
//If the feature is on the map then we want to add it
if(feature.onScreen()){
dataArray.push(feature.attributes);

}

if(v > 500)
{
LastPos = v;
break;
}
}
setTimeout('DoLoop()', 10);
}

关于JavaScript:提高 FOR 循环的性能以阻止浏览器锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657001/

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