javascript - 在 Chrome/Firefox 中产生大量 WebWorkers

标签 javascript google-chrome firefox canvas web-worker

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

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

Firefox:看来 Firefox 在产生一定数量的 WebWorkers 后就放弃了,而且还不到 32 个。一定数量的 WebWorkers 完成了,其余的似乎处于某种不确定状态状态,永远不会完成执行。我在 Firebug 的错误控制台中没有得到任何输出。

Safari: Safari 是唯一能够完美地生成大量 WebWorker 的浏览器。这里没有问题。

IE:谁在乎?

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

最佳答案

您是否有 worker.terminate(); 语句来在工作人员完成后将其关闭?这绝对可以成为一个拦截器。

关于javascript - 在 Chrome/Firefox 中产生大量 WebWorkers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15029207/

相关文章:

css - 功能检测 CSS 过滤器不起作用

python - 使用 Python Selenium 时数据/内容丢失

jquery - jquery 和 firefox `Security error"代码 : "1000` 的问题

javascript - Angular 2 - [对象对象] - 使用点表示法访问对象的属性不起作用

javascript - 动态生成的嵌套 DIV 中的 OnMouseOver 事件无响应

javascript - 避免 AngularJS 栏脚重叠内容

javascript - 可以在 Chrome 扩展的后台 JS 中注册按键绑定(bind)吗?

javascript - 具有相同 ID 的多个 svg

javascript - 如何显示全高度度的背景

java - 是否有一个selenium API调用来检查MultiSelectField中是否有somethingIsSelected?