Ich habe eine Web-App, die auch offline arbeiten sollte. Dafür benutze ich JavaScript-Servicemitarbeiter, um notwendige Dateien in den Cache zu stellen. Wenn die Verbindung besteht, werden alle Ressourcen aus dem Netzwerk geladen. Wenn keine Verbindung besteht, werden die Ressourcen aus dem Cache geladen. Das funktioniert gut.Javascript Service Worker verwenden Cache nach Netzwerk-Timeout
Nun ist das Problem, wenn eine Internetverbindung auf dem Gerät, aber der Server ist nicht verfügbar. Dann fällt es nie in den Cache zurück, weil es eine Internetverbindung hat.
Hier ist mein Code für das Ereignis holt in dem Service-worker.js:
self.addEventListener('fetch', function(event) {
event.respondWith(
fetch(event.request).catch(function() {
return caches.match(event.request);
})
);
});
Meine Idee ist es, eine Art von Timeout zu implementieren, wenn die Anwendung kann nicht den Inhalt erhält in 30 Sekunden sagen kann dann Benutze immer den Cache. Hat jemand eine Idee, wie man das umsetzt? Ich bin nicht so fit mit Versprechen ...
Danke für den Link! das klingt vielversprechend, ich werde es im nächsten Jahr testen;) – Alphacoder