【问题标题】:How to force update the service worker file in Google Devtools?如何强制更新 Google Devtools 中的 service worker 文件?
【发布时间】:2019-11-11 15:39:09
【问题描述】:

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

我使用的是 Chrome 版本“75.0.3770.100”。

我让它工作的唯一方法是再次选中和取消选中,另一种方法是点击“skipWaiting”

有什么我遗漏的东西或我应该启用的标志吗?

感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

    如果您可以在 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");
    });
    

    【讨论】:

    • 非常感谢您的帮助!现在它对我来说非常有效。
    猜你喜欢
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多