JavaScript和UI响应中的长时间运行循环
Long-running loops in JavaScript and UI responsiveness
我有一段代码在"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不显示脚本调试对话框。请告知。感谢
如果您使用的是Firefox,您可能正在寻找web工作者,它允许您生成后台线程。
我认为web工作者正是您所需要的。
在这里,您可以找到一个很好的web工作者介绍:链接
相关文章:
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- 如何使用 javascript 停止对 asp.net 进行正在进行的回发(长时间运行的执行)
- 如何修复长时间运行的脚本
- 长时间运行的脚本IE与Chrome/Firefox
- 有没有一种方法可以在长时间运行的JavaScript操作之前强制回流
- 我可以/如何显式终止长时间运行的 xhr 请求
- AJAX 可访问的长时间运行的服务任务阻止在启用 ASP.NET 兼容性/会话的环境中的后续 AJAX 服务请求
- JQuery新手:长时间运行的函数需要setTimeout吗
- Javascript:在长时间运行的Javascript函数期间显示Throbber
- 长时间运行的AJAX请求在几分钟后重新提交
- JavaScript和UI响应中的长时间运行循环
- spin.js没有'它不会在长时间运行的任务中显示,但当我逐步通过调试器时会显示
- 谷歌分析是否有一个“;心跳;用于长时间运行的web应用程序的功能
- DOM操作被长时间运行的func阻塞,之后调用
- 如何在长时间运行的事件中更新页面元素
- 使用数据表时,IE8长时间运行脚本错误
- 对长时间运行的函数进行DOM刷新
- 如何在长时间运行的服务器操作期间与用户交互(例如确认对话框)
- Javascript -我希望在长时间运行的函数运行之前显示复选框
- 如何在javascript中分解长时间运行的函数,但保持性能