接收HTML文件后,Service Worker变得多余

时间:2019-03-01 07:11:10

标签: javascript service-worker

最近我一直在与Service Workers一起工作,效果很好,但是目前我在EDGE中无法缓存 .html 文件。我正在使用自己的生成器,该生成器生成包含所有文件的数组以及基于文件大小的哈希。 安装.html文件时,SW变得多余。

Chrome,Firefox,Opera正常运行。

数组

var staticFiles = [["403.html","2cee1d060036c8da1e82669fe804aa70"],["404.html","2b4f197580132e3390828216428067ef"],["500.html","78e03a6569e35d5e95bea32b60633377"],["503.html","5e48c5ef9491db7443fad25c93be7894"],["application-settings.html","ebab51df91d97105baef9bd1f4d0c0ec"],["css/codemirror.css","df79083f846727a06e323db92e407504"]];

安装事件

self.addEventListener("install", (event) => {
    event.waitUntil(
        caches.open(staticCacheName).then( (cache) => {
            return setCachedURL(cache).then(function(cachedUrls) {
                return Promise.all(
                    Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {
                        if (!cachedUrls.has(cacheKey))
                        {
                            let request = new Request(cacheKey, {credentials: 'same-origin'});
                            return fetch(request).then(function(response) {
                                if (!response.ok) 
                                {
                                    console.log('Request for ' + cacheKey + ' returned a ' + 'response with status ' + response.status);
                                } else {
                                    return cleanResponse(response).then(function(responseToCache) {
                                        return cache.put(cacheKey, responseToCache);
                                    });
                                }
                            });
                        }
                    })
                );
            });
        }).then( () => {
            return self.skipWaiting();
        })
    );
});

如果此代码不够用,我使用的是Google略加编辑的template,我刚刚在其中添加了对动态文件的支持。

0 个答案:

没有答案