Vla*_*lad 16 javascript html5 web-worker
我想知道当用户关闭产生工作线程的选项卡时会发生什么,而线程仍在工作.它会阻止一切吗?如果是这样,即使关闭选项卡,有没有办法在后台运行线程?
ben*_*ich 12
是的,它会停止一切,一个(专职)工人不能比它的主人更长寿.如果您使用可以拥有多个所有者的共享工作者,只要至少有一个所有者还活着,该工作人员将只能保持活动状态.即使您将纠缠传递MessagePort到另一个窗口(即消息端口的所有者不是工作者的所有者),也是如此.
因此,对于共享工作人员,您可以通过打开一个新窗口来"转移"所有权,该窗口与工作人员(使用new SharedWorker(...))建立自己的连接,然后关闭旧窗口.但是必须始终保持一个窗口.