相关疑难解决方法(0)

Javascript - 如何在繁重的工作中避免阻止浏览器?

我的JS脚本中有这样的功能:

function heavyWork(){
   for (i=0; i<300; i++){
        doSomethingHeavy(i);
   }
}
Run Code Online (Sandbox Code Playgroud)

也许"doSomethingHeavy"本身是好的,但它重复300次导致被卡住了不可忽略的时间浏览器窗口.在Chrome中,这不是一个大问题,因为只有一个Tab受到影响; 但对于Firefox来说,这是一场彻底的灾难

有没有办法告诉浏览器/ JS"放轻松",而不是阻止对doSomethingHeavy的调用之间的所有内容?

javascript

19
推荐指数
3
解决办法
1万
查看次数

在Web工作程序仍在运行时向其发布消息

假设我们有一个Web工作者引用一个名为"worker.js"的文件.我们使用worker在"worker.js"中执行一个执行一些冗长操作的函数.我们将相应的消息发布给工作者并在主线程中继续.但是,在工作人员完成初始工作之前,主线程会向其发送另一条消息.

我的问题:工人是否会继续我们的计时功能,只会在完成后处理新发布的消息,还是会中断当前的操作,直到新的消息完成为止?

javascript multithreading asynchronous interrupt web-worker

5
推荐指数
1
解决办法
767
查看次数