我正在编写一个简单的JavaScript应用程序,它在HTML5 canvas
元素中生成Mandlebrot set分形。生成图形的算法很容易并行化,因此我使用WebWorkers将屏幕切割成更易于管理的块。但是,当我产生大量WebWorkers时,我遇到了一些问题,而且它似乎是浏览器特定的:
Chrome:生成32到64个WebWorkers会导致页面崩溃。奇怪的是WebWorkers一旦完成执行就不会被破坏。例如,如果我使用32个WebWorkers运行模拟一次,我没有问题,但如果我重新运行模拟(不重新加载页面),页面就会死亡。
Firefox:似乎Firefox在产生了一定数量的WebWorkers之后就放弃了,并且它不到32个。一定数量的WebWorkers完成了,其余的似乎存在于某些不足之处国家,永远不会完成执行。我没有在Firebug的错误控制台中获得任何输出。
Safari: Safari是唯一能够完美生成大量WebWorkers的浏览器。这里没问题。
IE:谁在乎?
有没有人能解决任何这些特定于浏览器的问题,或者至少知道是什么导致了这些问题?
答案 0 :(得分:0)
您是否有worker.terminate();
声明在工作完成后关闭工人?这肯定是一个阻碍者。