我的JS脚本中有这样的功能:
function heavyWork(){
for (i=0; i<300; i++){
doSomethingHeavy(i);
}
}
Run Code Online (Sandbox Code Playgroud)
也许"doSomethingHeavy"本身是好的,但它重复300次导致被卡住了不可忽略的时间浏览器窗口.在Chrome中,这不是一个大问题,因为只有一个Tab受到影响; 但对于Firefox来说,这是一场彻底的灾难
有没有办法告诉浏览器/ JS"放轻松",而不是阻止对doSomethingHeavy的调用之间的所有内容?
假设我们有一个Web工作者引用一个名为"worker.js"的文件.我们使用worker在"worker.js"中执行一个执行一些冗长操作的函数.我们将相应的消息发布给工作者并在主线程中继续.但是,在工作人员完成初始工作之前,主线程会向其发送另一条消息.
我的问题:工人是否会继续我们的计时功能,只会在完成后处理新发布的消息,还是会中断当前的操作,直到新的消息完成为止?