有没有办法在JavaScript中销毁HTML5 WebWorkers?
这是我的情况:我有一个Web应用程序,它可以生成大量的WebWorkers(16到32之间),以优化一些渲染过程。这个过程在前几次工作正常,但是当脚本运行多次(不重新加载页面)时页面就会死掉。当我尝试同时产生大量(100多个)WebWorkers时,我得到的是同样的错误,所以我假设我遇到了同样的障碍。
当脚本运行多次时,在第一轮中实例化的WebWorkers不再需要存在;我不重用任何WebWorker对象。我想破坏第一次创建的WebWorkers,以便在尝试生成新的WebWorkers时,脚本的未来执行不会停止。
我在Chrome和Firefox中只注意到了这个问题; Safari似乎没有这个限制。
答案 0 :(得分:13)
您应该可以从主窗口调用此方法来立即终止工作人员:
myWorker.terminate();
请在此处查看完整的API:https://developer.mozilla.org/en-US/docs/DOM/Using_web_workers
或者,您可以从工作人员本身拨打close()
,请参阅:https://developer.mozilla.org/en-US/docs/DOM/Using_web_workers