2012-01-16 77 views

回答

11

是的,它停止了一切,一个(专用)工人无法活过它的主人。如果您使用可以拥有多个所有者的共享工作人员,那么只要至少有一个所有者在世,工作人员将只会保持活动状态。即使您将纠结的MessagePort传递到另一个窗口(即消息端口的所有者为而非工作的所有者),情况也是如此。

因此,通过共享工作人员,您可以通过打开一个与工作人员建立自己连接的新窗口(使用new SharedWorker(...))“转移”所有权,然后关闭旧窗口。但一个窗口必须始终保持开放。

3

看看这里

http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#workerglobalscope

认为它确认,一旦浏览器消失,任何工人必须停止。

每当一个Document对象被丢弃,必须从每个工人,其列表包含 文件的工人的证件的 列表中删除。

如果您有一个使用网络工作者的窗口,并关闭该窗口(或选项卡),工作人员就会消失。

如果您有一个窗口,打开其他窗口或选项卡的情况下,工作人员可以继续。但是如果你关闭了所有的东西,它们都会消失。

+1

为了澄清,由于讨论围绕新窗口进行,因此这也应该适用于新的页面加载。加载新页面会丢弃当前文档对象(web worker会消失),并在新文档加载时重新创建。 – ElHaix 2012-02-22 15:51:22

相关问题