Вы можете использовать стратегию pre-fecth
, чтобы гарантировать, что все статические активы загружаются и доступны в кеше, когда установлен сервисный работник:
const mapTilesToCache = [
'/mapFolder/',
];
const staticCacheName = 'tiles-cache';
self.addEventListener('install', event => {
event.waitUntil(
caches.open(staticCacheName)
.then(cache => {
return cache.addAll(mapTilesToCache);
})
);
});
Однако имейте в виду, что этот видСтратегия обычно используется для файлов оболочки приложения (гораздо меньше, чем 300 МБ). Если работнику службы поддержки не удается загрузить ресурсы, которые вы определили для фазы «установки», он прервет свою установку.
Как только ваши файлы будут в кеше, вы можете предоставить их пользователю:
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => {
if (response) {
// return the file from the cache
return response;
}
}).catch(error => {
// Respond with custom offline page
})
);
});