【发布时间】:2012-04-28 03:40:02
【问题描述】:
我的 JS 脚本中有这样一个函数:
function heavyWork(){
for (i=0; i<300; i++){
doSomethingHeavy(i);
}
}
也许“doSomethingHeavy”本身没问题,但重复 300 次会导致浏览器窗口卡住一段不可忽略的时间。在 Chrome 中,这不是什么大问题,因为只有一个 Tab 会受到影响;但对于 Firefox 来说,这完全是一场灾难。
有什么方法可以告诉浏览器/JS“放轻松”,而不是阻止调用 doSomethingHeavy 之间的所有内容?
【问题讨论】:
-
您可以尝试在调用
doSomethingHeavy之间睡觉。此外,如果此函数处理与某些服务器的通信,AJAX 可能是正确的选择。 -
@EranZimmerman:我认为你不能在 JavaScript 中“睡觉”。你能做的最好的就是
setTimeout每次调用doSomethingHeavy。
标签: javascript