Service Worker
Der Service Worker ist ein optionaler Browser-Runtime-Cache für bereits angeforderte statische Ressourcen derselben Origin. Das Modul ist standardmäßig deaktiviert.
Voraussetzungen
Section titled “Voraussetzungen”Der Service Worker ist verfügbar bei:
- HTTPS,
localhostund*.localhost,127.x.x.x,::1.
Endpoint und Scope
Section titled “Endpoint und Scope”Der Worker wird dynamisch über WordPress ausgeliefert:
/fg-performance-sw.js?v=<cache-version>Bei WordPress in einem Unterverzeichnis wird der Pfad entsprechend der Home-URL gebildet. Der Response enthält unter anderem Cache-Control: no-store und Service-Worker-Allowed für den ermittelten Scope.
Cache-Ziele
Section titled “Cache-Ziele”Der aktuelle Code akzeptiert ausschließlich die Request-Destinations:
stylescriptfontimage
Die Strategie ist fest stale-while-revalidate.
Es gibt kein Precache. Eine Ressource wird erst verarbeitet, nachdem die Website sie selbst angefordert hat.
Nicht gecachte Antworten
Section titled “Nicht gecachte Antworten”Der Worker verarbeitet keine Anfrage, wenn unter anderem einer der folgenden Fälle vorliegt:
- Request-Methode ist nicht
GET, - Request-Destination gehört nicht zu den vier statischen Zielen,
- Request verwendet
cache = no-store, - URL ist Cross-Origin oder außerhalb des Service-Worker-Scopes,
- Ziel ist
wp-login.php,wp-adminoder darunter.
Eine Response wird nicht in den FG-Cache übernommen, wenn sie unter anderem:
- nicht erfolgreich mit HTTP 200 ist,
opaqueist,- von einer anderen Origin stammt,
Cache-Control: no-storeoderprivateenthält,Vary: *oderVary: Cookieenthält,text/htmloderapplication/jsonals Content-Type enthält,- bei vorhandenem
Content-Lengthdas konfigurierte Größenlimit überschreitet.
Damit ist der Worker nicht als HTML-, Navigation-, REST- oder AJAX-Cache ausgelegt.
Cache-Größen
Section titled “Cache-Größen”Standardwerte:
- maximal 100 Einträge,
- maximal 10 MiB pro Response, sofern
Content-Lengthvorhanden ist.
Das Maximum wird nach jeder erfolgreichen Cache-Aktualisierung begrenzt, indem überschüssige Einträge aus der von Cache Storage gelieferten Key-Liste entfernt werden.
Hard Reload
Section titled “Hard Reload”Requests mit cache = reload oder cache = no-cache lesen nicht aus dem vorhandenen FG-Cache. Eine erfolgreiche Netzwerkantwort kann den Cache anschließend aktualisieren.
Fremde Service Worker
Section titled “Fremde Service Worker”Vor der Registrierung prüft FG Performance eine bereits vorhandene Registration im gleichen Scope. Wenn deren aktiver, wartender oder installierender Worker nicht fg-performance-sw.js in der Script-URL enthält, registriert FG Performance seinen Worker nicht automatisch darüber.
Cleanup
Section titled “Cleanup”Wenn das Modul nach vorheriger Aktivierung ausgeschaltet wurde, fügt FG Performance im Frontend ein Cleanup-Script ein. Dieses entfernt die eigene Registration und Browser-Caches mit dem Prefix:
fg-performance-static-Vor vollständiger Plugin-Deaktivierung sollte das Modul deshalb zuerst deaktiviert und das Frontend einmal geladen werden.
FG Static Export
Section titled “FG Static Export”Das Modul hört auf den Filter fg_static_export_additional_files. Bei aktiviertem Service Worker kann es fg-performance-sw.js als zusätzliche Exportdatei ergänzen, wenn der Export-Kontext ein gültiges HTTPS-Ziel oder eine lokale Entwicklungs-URL enthält.
FG Static Export ist im aktuellen Code keine Pflichtabhängigkeit.