有两个相关方面:
服务人员注册,这是浏览器中记录的记录,其中说“对于此URL,这些事件应由此脚本处理”,以及
服务工作者激活,这是将您的工作者代码加载到内存中并处理请求或等待一个请求时
服务工作人员会在浏览器会话之间保持注册状态(规范链接)。因此,如果您完全退出浏览器(甚至重新启动计算机),注册将继续进行;如果您转到相关的范围URL,并且会注册该事件以处理该工作器,则该工作器将被激活。
服务工作者在需要处理事件时会被激活,并且可能在没有事件要处理时被终止(规范链接)。何时以及是否这样做取决于主机环境(浏览器)。如果没有内存压力或类似问题(即使使用该工作人员的范围URL的所有选项卡都已关闭),浏览器可能会使该工作人员保持激活状态,尽管这似乎不太可能。即使工作进程当前处于空闲状态,当至少还有一个使用其作用域URL的选项卡时,也可能将其保留在内存中;否则它可能会在没有任何请求处理的瞬间终止工作程序。由主机环境来平衡将服务工作者保留在内存中的成本与再次需要时启动它的成本之间的平衡。
这是一个有用的思维模型,可以假设主机将真正具有攻击性,并在不需要活动的那一刻终止工作人员,这就是为什么此答案的先前版本称他们为“寿命极短”的原因。但是,在任何给定的宿主环境中,这是否确实如此,取决于环境及其优化。