#javascript #python #service-worker
#javascript #python #service-worker
Вопрос:
У меня проблема с запуском service worker
Я перепробовал множество решений, и ничего не сработало
Что я пытаюсь сделать, так это кэшировать файлы для автономного использования
Кстати, я впервые работаю с service workers
main.js:
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('/sw.js')
.catch(function(err) {
console.error(err);
});
}
sw.js:
const files = [
'/',
'/index.html',
'/restaurant.html',
'/css/styles.css',
'/js/dbhelper.js',
'/js/main.js',
'/js/restaurant_info.js',
'/data/restaurants.json',
'/img/1.jpg',
'/img/2.jpg',
'/img/3.jpg',
'/img/4.jpg',
'/img/5.jpg',
'/img/6.jpg',
'/img/7.jpg',
'/img/8.jpg',
'/img/9.jpg',
'/img/10.jpg'
];
self.addEventListener('install', function(e) {
e.waitUntil(
caches.open('v1').then(function(cache) {
return cache.addAll(files);
})
);
});
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
if (response) {
console.log('Found ', e.request, ' in cache');
return response;
}
else {
console.log('Could not find ', e.request, ' in cache, FETCHING!');
return fetch(e.request)
.then(function(response) {
const clonedResponse = response.clone();
caches.open('v1').then(function(cache) {
cache.put(e.request, clonedResponse);
})
return response;
})
.catch(function(err) {
console.error(err);
});
}
})
);
});
Эти файлы были отправлены с помощью python -m http.server
Комментарии:
1. Лучше вставьте текстовое сообщение в виде текста здесь.
2. Как вы размещаете
sw.js
?3. @JonasWilms localhost, сервер python
4. Ну, «неподдерживаемый тип MIME» означает, что сервер отправляет неправильный ответ.
5. Работнику службы требуется HTTPS, включен ли HTTPS в вашей среде разработки? developers.google.com/web/fundamentals/primers/service-workers /…