没有响应的Javascript检查很多元素

时间:2013-05-11 16:43:24

标签: javascript

我创建了一个类似暴力的脚本,它基本上需要检查超过27,000个选项,并且每次检查后都会在div中显示结果。

脚本编码正确,如果我减少了选项的数量就足够了,但如果我有很多选项,几秒钟后会弹出一个窗口,告诉我我的脚本没有响应。如何在检查这么多选项时如何使其响应。

哦,我差点忘了,它只显示弹出窗口时显示数据(每次检查后显示)(有点奇怪)。

1 个答案:

答案 0 :(得分:1)

异步批处理可以解决您的问题:

var options = ...; // your code

// I assume you are using something like this
function processAll() {
  for(var i=0; i<options.length; ++i) ... // causes unresponsivity
}

// try to use this instead
function batchProcessing(from) {
  if(from >= options.length) return;
  var to = Math.min(1000, options.length-from);
  for(var i=from; i<from+to; ++i) ... // your code
  // run the next batch asynchronously, let the browser catch the breath
  setTimeout(batchProcessing.bind(null, from+1000));
}