В последнее время я работаю с сервисными работниками, это отлично работает, но в настоящее время у меня возникают проблемы в EDGE с кэшированием .html файлов.Я использую свой собственный генератор, который генерирует массив со всеми файлами + их хэш в зависимости от размера файла.SW становится избыточным при установке файла .html.
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, где я только что добавил поддержку динамических файлов.