5

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

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

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

4

1 回答 1

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));
}
于 2013-05-11T16:54:15.553 回答