如何在Google Devtools中强制更新服务工作者文件?

时间:2019-06-30 20:38:04

标签: google-chrome-devtools service-worker devtools

我试图强制重新加载新的Service Worker文件,但是它没有自动加载。我已经在devtools的“应用程序”选项卡中选中了“重新加载时更新”复选框,并在“源”选项卡中禁用了缓存。

我正在使用Chrome版本“ 75.0.3770.100”。

使它正常工作的唯一方法是再次选中和取消选中,另一种方法是单击“ skipWaiting”

我是否缺少某些东西或应该启用标志?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果您在Devtools中看到skipWaiting选项是因为您没有在安装事件中调用self.skipWaiting()。通常,新的更新的服务程序会等到较旧的版本不控制任何客户端。 self.skipWaiting()可以防止这种等待。这是一个例子。

//This is the install event listener
self.addEventListener("install", (event) => {
    console.log(self);
    event.waitUntil(
        caches.open(CACHE_NAME).then(cache => {
            cache.addAll(STATIC_ASSETS).then(() => {
                    self.skipWaiting();
                }).catch(error => {
                    logForDevelopment("An error occured while adding static assets to the cache", true);
                    logForDevelopment(error, true);
                })
        })
    );
    logForDevelopment("Service Worker: Installed");
});