Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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和UI响应中的长时间运行循环_Javascript_Loops_Firefox_Recursion_Browser - Fatal编程技术网

JavaScript和UI响应中的长时间运行循环

JavaScript和UI响应中的长时间运行循环,javascript,loops,firefox,recursion,browser,Javascript,Loops,Firefox,Recursion,Browser,我有一个在“for”循环中处理巨大JSON数组的代码 问题在于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 <= 5

我有一个在“for”循环中处理巨大JSON数组的代码

问题在于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);
   }
}
//不是精确的代码示例,但有点像。
延迟(arr,0);
功能延迟(arr,num){
//按部件处理阵列,每个部件中有50个元素

对于(var i=1;i如果您使用Firefox,您可能正在寻找,它允许您生成背景线程。

如果您使用Firefox,您可能正在寻找,它允许您生成背景线程。

如果您使用Firefox,您可能正在寻找,它允许您生成背景线程。

如果您使用Firefox,您可能正在寻找,它允许您生成后台线程。

我认为web工作者是您所需要的


在这里你可以找到一个很好的网络工作者介绍:

我认为网络工作者正是你所需要的


在这里你可以找到一个很好的网络工作者介绍:

我认为网络工作者正是你所需要的


在这里你可以找到一个很好的网络工作者介绍:

我认为网络工作者正是你所需要的


在这里你可以找到一个很好的网络工作者介绍:

我希望有一些跨浏览器的解决方案,因为其他浏览器也被冻结了,只是没有对话框。而且用户PC上的CPU负载当然是100%。正如我所能说的,网络工作者在Chrome、IE10+、Safari等浏览器中都得到了支持。请看这里:我希望这里有一些跨浏览器解决方案,因为其他浏览器也在冻结,只是没有对话框。用户PC上的CPU负载当然是100%。我可以告诉网络工作者,Chrome、IE10+、Safari等都支持浏览器。请看这里:我希望有一些跨浏览器解决方案,因为其他浏览器也在冻结嗯,没有对话框。用户PC上的CPU负载当然是100%。我能告诉你的是,Chrome、IE10+、Safari等都支持网络工作者。请看这里:我希望有一些跨浏览器的解决方案,因为其他浏览器也在冻结,没有对话框。用户PC上的CPU负载当然是100%.据我所知,Chrome、IE10+、Safari等都支持Web Workers。请参见此处:
//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);
   }
}