摧毁WebWorkers

时间:2013-02-23 00:23:23

标签: javascript google-chrome firefox safari web-worker

有没有办法在JavaScript中销毁HTML5 WebWorkers?

这是我的情况:我有一个Web应用程序,它可以生成大量的WebWorkers(16到32之间),以优化一些渲染过程。这个过程在前几次工作正常,但是当脚本运行多次(不重新加载页面)时页面就会死掉。当我尝试同时产生大量(100多个)WebWorkers时,我得到的是同样的错误,所以我假设我遇到了同样的障碍。

当脚本运行多次时,在第一轮中实例化的WebWorkers不再需要存在;我不重用任何WebWorker对象。我想破坏第一次创建的WebWorkers,以便在尝试生成新的WebWorkers时,脚本的未来执行不会停止。

我在Chrome和Firefox中只注意到了这个问题; Safari似乎没有这个限制。

1 个答案:

答案 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