有没有一种在javascript中执行长时间运行操作的好方法?例如,我有一个可能需要2分钟才能运行的功能.我们如何打破像这样的大型行动?如果我使用的是java或C,我会在后台线程中执行此任务.有没有办法告诉浏览器暂停脚本的执行,以便它可以让它的前台/ UI线程再次工作?像这样的东西?:
function bigJob() {
for (i = 0; i < 1000000; i++) {
someWork();
sleep(1000);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
如果你想让它休眠,你可以间隔运行它:
var i = 0;
var jobInterval = setInterval(bigJob, 1000);
function bigJob() {
somework();
i++;
if(i>1000000) {
clearInterval(jobInterval);
}
}
Run Code Online (Sandbox Code Playgroud)
您必须跟踪函数中的迭代次数,并在完成后终止间隔。
如果 someWork() 很密集,您仍然会在每个时间间隔挂起浏览器。
| 归档时间: |
|
| 查看次数: |
1887 次 |
| 最近记录: |