我正在编写一个简单的 JavaScript 应用程序,它在 HTML5元素中生成Mandlebrot 集分形。canvas
生成图形的算法很容易并行化,所以我使用 WebWorkers 将屏幕切割成更易于管理的块。但是,当我生成大量 WebWorkers 时,我遇到了一些问题,而且它似乎是特定于浏览器的:
Chrome:生成 32 到 64 个 WebWorker 会杀死页面。奇怪的是,WebWorkers 在执行完成后似乎并没有被销毁。例如,如果我用 32 个 WebWorkers 运行一次模拟,我没有问题,但如果我重新运行模拟(不重新加载页面),页面就会死掉。
火狐:火狐似乎是在产生了一定数量的WebWorker后才放弃,不到32个。一定数量的WebWorkers完成了,其余的似乎处于某种边缘状态,从未完成执行。我在 Firebug 的错误控制台中没有得到任何输出。
Safari: Safari 是唯一一个似乎完美地产生了大量 WebWorkers 的浏览器。这里没有问题。
IE:谁在乎?
有没有人可以解决这些特定于浏览器的问题,或者至少知道是什么导致了这些问题?