刷新在服务工作者中使用importScripts导入的脚本

col*_*rco 5 javascript service-worker push-api

我有一个网站,有一个服务工作者喜欢:

// Import a script from another domain
importScripts('https://example.com/script.js')
Run Code Online (Sandbox Code Playgroud)

假设script.js使用一些新代码进行更新,并且由于推送事件而激活了服务工作者(用户同时没有再访问过我的网站).

importScripts每次激活服务工作者时是否检查更新,或者script.js在首次安装服务工作者时仅下载一次更新?

有没有办法让服务工作者每次收到推送消息时刷新服务工作者代码(特别是导入的脚本)?

Mar*_*rco 5

根据Service Workers 规范,导入的脚本importScripts会在安装/更新 Service Worker 时存储在映射中,然后重复使用,直到出现新的更新。GitHub 上有一个讨论,其中包含更多详细信息。

我想不出当服务工作人员收到推送消息时重新加载导入的脚本的方法。您的用例是什么?