Es ist sehr einfach, den HTML-Code selbst vorab zwischenzuspeichern
Code: Select all
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('v1')
.then((cache) => {
return cache.addAll(['/404.html']);
})
);
});
Wie kann mein Servicemitarbeiter auch diese Abhängigkeitsressourcen abrufen und vorab zwischenspeichern?
Ich möchte die Abhängigkeiten nicht manuell auflisten und verfolgen
Code: Select all
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('v1').then((cache) => {
return cache.addAll([
'/404.html',
'/static/css/main.css',
'/static/css/404.css',
'/static/img/logo.png',
'/static/fonts/inter-var.woff2',
// ... everything the offline page needs
]);
})
);
});
Ich denke, das Parsen des HTML im Service Worker ist auch keine gute Lösung, da es keine CSS-URL()-Referenzen und dynamischen URLs (z. B. JS-generierte) verarbeitet, es sei denn, es gibt eine Browser-API dafür, die die Seite unter der Haube abruft (von dem ich noch nichts weiß), die Implementierung meines eigenen In-the-Browser-Parsers klingt nach Albträumen! Es wäre fragil und würde wahrscheinlich keine genaue Parität mit einem echten Browser aufrechterhalten.
Mobile version