首页 > 解决方案 > Service Worker 中的动态缓存名称

问题描述

如何在服务工作者中创建动态缓存名称?我想检查 API 服务器以了解我的应用程序的最新版本。它将是我的应用程序的缓存名称。我使用了 fetch 但它总是返回undefined

staticCacheName = (() => {
    fetch('https://unitedspace.co.id/check_version.php')
        .then(response => response.json())
        .then(myJson => myJson.app_name + '-' + myJson.version + '.' + myJson.build_number);
})();

这是我的服务人员代码:

self.addEventListener('activate', function(e) {
    e.waitUntil(caches.keys().then(function(cacheNames) {
        return Promise.all(
        cacheNames.map(function(cacheName) {
            if (cacheName != 'blog-{{ site.github.build_revision }}') {
            return caches.delete(cacheName);
            }
        })
        );
    }));
});




self.addEventListener('fetch', function(e) {
    e.respondWith(caches.match(e.request).then(function(response) {
        return response || fetch(e.request);
    }));
});

标签: javascriptservice-worker

解决方案


您的第一个片段中没有任何回报。正常吗?


推荐阅读