服务工作者到期

Ale*_*vin 7 google-chrome service-worker

安装Service Worker后,Chrome浏览器需要多长时间才能检查其新版本?当前客户端服务工作者什么时候到期?

我正在尝试找出与服务工作者一起开发的最佳实践,并推动对prod的更改.目前,一旦对服务工作者的行为进行了实施更改,如果已经安装了以前的服务工作者,则客户端并不总是选择该服务器.

这个问题也有一定的相关性:以编程方式更新服务工作者 - 理想情况下,一旦对SW实施了更改,您就要强制在可能已有其早期版本的所有客户端上更新它.

Ale*_*vin 7

仔细阅读MDN文档提供了一个答案:

https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Updating_your_service_worker

如果先前已安装了服务工作者,但在刷新或页面加载时可以使用新版本的工作程序,则新版本将在后台安装,但尚未激活.只有在不再加载任何仍在使用旧服务工作者的页面时,才会激活它.只要仍然没有加载此类页面,新服务工作程序就会激活.


YoY*_*ngh 7

默认情况下,服务人员会在24小时后过期。但是最好的方法是使用max-age = 0标头。因为我们希望我们的更改能尽快反映出来。我不知道强制更新,但是当它们没有缓存Service Worker文件并且没有为以前的Service Worker打开选项卡时,新的Service Worker将自动安装。

请参阅此链接以获取更多信息 https://jakearchibald.com/2016/caching-best-practices/

  • 你能详细说明它的有效期吗?我所能找到的是它会在大约 24 小时后尝试自我更新,但不会在未使用或其他情况下过期。我想只有当服务器没有响应新的服务工作者(在 24 小时结束并尝试更新之后)时,它才会自行过期? (3认同)