1

我正在编写一个简单的 JavaScript 应用程序,它在 HTML5元素中生成Mandlebrot 集分形。canvas生成图形的算法很容易并行化,所以我使用 WebWorkers 将屏幕切割成更易于管理的块。但是,当我生成大量 WebWorkers 时,我遇到了一些问题,而且它似乎是特定于浏览器的:

Chrome:生成 32 到 64 个 WebWorker 会杀死页面。奇怪的是,WebWorkers 在执行完成后似乎并没有被销毁。例如,如果我用 32 个 WebWorkers 运行一次模拟,我没有问题,但如果我重新运行模拟(不重新加载页面),页面就会死掉。

火狐:火狐似乎是在产生了一定数量的WebWorker后才放弃,不到32个。一定数量的WebWorkers完成了,其余的似乎处于某种边缘状态,从未完成执行。我在 Firebug 的错误控制台中没有得到任何输出。

Safari: Safari 是唯一一个似乎完美地产生了大量 WebWorkers 的浏览器。这里没有问题。

IE:谁在乎?

有没有人可以解决这些特定于浏览器的问题,或者至少知道是什么导致了这些问题?

4

1 回答 1

0

您是否有worker.terminate();声明在工人完成后关闭工人?这绝对是一个障碍。

于 2013-03-14T20:40:20.207 回答