当标签关闭时,HTML5 web工作线程会发生什么's正在跑步

What happens to an HTML5 web worker thread when the tab is closed while it's running?

本文关键字:什么 标签 HTML5 线程 工作 web      更新时间:2023-09-26

我想知道当用户在线程仍在工作时关闭生成工作线程的选项卡时会发生什么。它会停止一切吗?如果是的话,有没有一种方法可以在后台运行线程,即使选项卡关闭了?

是的,它会停止一切,一个(敬业的)员工无法比它的所有者活得更长。如果您使用一个可以有多个所有者的共享工作者,那么只要至少有一个所有者还活着,该工作者就会活着。即使将纠缠的MessagePort传递给另一个窗口(即消息端口的所有者是而不是工作者的所有者),情况也是如此。

因此,对于共享工作者,您可以通过打开一个新窗口来"转移"所有权,该窗口与工作者建立自己的连接(与new SharedWorker(...)),然后关闭旧窗口。但必须始终打开一扇窗户。

看看这里的

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

我认为这是在确认一旦浏览器关闭,任何工作人员都必须停止。

无论何时丢弃Document对象,都必须将其从每个工作人员的工作人员文件列表,该列表包含文件

如果您有一个使用web工作程序的窗口,并且您关闭了该窗口(或选项卡),则工作程序将离开。

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