【发布时间】:2014-10-14 12:32:09
【问题描述】:
我有一段代码在“for”循环中处理一个巨大的 JSON 数组。
for(var i = 0; item = arr[i]; i++) {
//PROCESS item
}
问题出在 Firefox 浏览器上。它显示一个警告对话框,指出脚本运行时间过长。以下代码是解决方案
//not precise code example, but it's kind of.
delay(arr, 0);
function delay(arr, num) {
//process array by parts with 50 elements in each part
for(var i = 1; i <= 50; i++) {
//PROCESS arr[num];
num += i;
}
if(num < arr.length) {
setTimeout(function() { delay(arr, num); }, 100);
}
}
我想知道是否有更绝妙的方法来解决整个 UI 冻结并使 Firefox 不显示脚本调试对话框。请指教。谢谢
【问题讨论】:
标签: javascript loops firefox recursion browser