Dwa interfejsy API odgrywają kluczową rolę w tworzeniu niezawodnych aplikacji internetowych: Skrypt service worker i Pamięć podręczna. Ale jak skutecznie je wykorzystywać – bez wprowadzania drobnych błędów czy najeżdżania na krawędzie może być sporym wyzwaniem. Błędy w kodzie skryptu service worker mogą powodować problemy z buforowaniem; użytkownikom mogą wyświetlać się nieaktualne treści .
Workbox jest usługą wysokiego poziomu zestaw narzędzi service worker bazujący na mechanizmach Service Worker i pamięci podręcznej API. Udostępnia on gotowy do wykorzystania w środowisku produkcyjnym zestaw bibliotek do dodawania obsługi offline aplikacji internetowych. Zestaw narzędzi składa się z 2 kolekcji: narzędzi do zarządzania kod działający w skrypcie service worker oraz narzędzia integrujące się procesu tworzenia aplikacji.
Kod środowiska wykonawczego
To kod, który działa w skrypcie service worker i steruje sposobem przechwytuje żądania wychodzące i wchodzi w interakcję z interfejsem Cache Storage API. Workbox ma około kilkanaście modułów biblioteki, które obsługują różne, specjalistyczne zastosowania. Najważniejsze moduły określać, czy skrypt service worker zareaguje (nazywany wyznaczanie tras), i jak zareaguje (nazywany strategii buforowania).
Integracja kompilacji
Oferty Workbox command line, Moduł Node.js, oraz wtyczka webpack które dają alternatywne sposoby osiągnięcia dwóch celów:
- Utwórz skrypt service worker na podstawie zbioru konfiguracji . Wygenerowany skrypt service worker używa bibliotek środowiska wykonawczego Workbox „świetne funkcje” które pozwalają wdrożyć skonfigurowane strategie buforowania.
- Wygeneruj listę adresów URL, które należy "precached", na podstawie możliwych do skonfigurowania wzorców uwzględniania i wykluczania wygenerowanych plików podczas tworzenia kampanii.
Dlaczego warto używać Workbox?
Użycie Workbox podczas tworzenia skryptu service worker jest opcjonalne. z przewodników, typowe strategie buforowania z „wanili” z perspektywy skryptu service worker. Jeśli zdecydujesz się na korzystanie z Workbox, Oto kilka zalet tego rozwiązania.
Zarządzanie pamięcią podręczną
Workbox obsługuje aktualizacje pamięci podręcznej, powiązane z procesem kompilacji, za pomocą wstępnego buforowania lub za pomocą konfigurowalnych zasad dotyczących rozmiaru i wieku podczas korzystania z środowiska wykonawczego buforowanie. Bazowy interfejs Cache Storage API jest wszechstronny, ale nie ma żadnych wbudowaną obsługę okresu wygaśnięcia pamięci podręcznej. Narzędzia takie jak Workbox wypełniają tę lukę.
Rozbudowane logowanie i raportowanie błędów
Rozpoczynasz pracę z mechanizmami Service Worker, aby dowiedzieć się, dlaczego
jest buforowana (lub, co równie frustrujące, dlaczego jej nie jest w pamięci podręcznej) jest dużym wyzwaniem.
Workbox automatycznie wykrywa, że korzystasz z deweloperskiej wersji
w witrynie localhost
i włącza logowanie debugowania w kodzie JavaScript w przeglądarce
konsoli.
Postępując zgodnie z komunikatami dziennika, możesz uzyskać dostęp do katalogu głównego problemów z konfiguracją i unieważnianiem. i jej samej.
Przetestowana baza kodu w różnych przeglądarkach
Workbox utworzono na potrzeby zestawu testów w wielu przeglądarkach i, jeśli to możliwe, automatycznie wraca do alternatywnych implementacji funkcji, w niektórych przeglądarkach.
-
workbox-broadcast-cache-update module
korzysta z funkcji Interfejs Broadcast Channel API gdy jest dostępny, i powraca do Na podstawiepostMessage()
w przeglądarkach, które nie obsługują tej funkcji. - moduł synchronizacji w tle (workbox-background-sync). korzysta z funkcji Interfejs API synchronizacji w tle jeśli to możliwe, a w przeciwnym razie ponawia próby zdarzeń w kolejce za każdym razem, uruchamia się skrypt service worker.
Jak używać Workbox?
Integracja platformy
Jeśli rozpoczynasz nowy projekt od zera, możesz skorzystać z Integracja z Workbox, którą można znaleźć w wielu popularnych zestawach startowych i wtyczkach dodatkowych:
Dodawanie Workbox do istniejącego procesu kompilacji
Jeśli masz już wdrożony proces tworzenia witryny, odpowiednie command line, Moduł Node.js, lub wtyczka webpack może być wystarczające, aby zacząć korzystać z Workbox.
Interfejs wiersza poleceń Workbox ułatwia
w uruchomionej wersji z trybem wizard
, który sprawdza proces programowania lokalnego
i zaproponuj rozsądną konfigurację domyślną, której możesz użyć
do przodu:
workbox wizard
? What is the root of your web app (i.e. which directory do you deploy)? src/
? Which file types would you like to precache? css, js, html
? Where would you like your service worker file to be saved? build/sw.js
? Where would you like to save these configuration options? workbox-config.js
Aby utworzyć skrypt service worker, uruchom workbox generateSW workbox-config.js
jako część procesu kompilacji. Więcej informacji znajdziesz w dokumentacji usługi generateSW
.
Możesz jeszcze bardziej dostosować skrypt service worker, wprowadzając zmiany w usłudze workbox-config.js
.
Więcej informacji znajdziesz w dokumentacji poszczególnych opcji.
Używaj Workbox w czasie działania w istniejącym środowisku service worker
Jeśli masz już skrypt service worker i chcesz wypróbować środowisko wykonawcze Workbox biblioteki, zaimportować aplikację Workbox z oficjalnej sieci CDN i od razu zacznij jej używać do buforowania środowiska wykonawczego. Zastosowanie oznacza, że nie można skorzystać z wstępnego buforowania (które wymaga integracji w czasie kompilacji), ale świetnie nadaje się do tworzenia prototypów i testowania różne strategie buforowania.
// Replace 3.6.3 with the current version number of Workbox.
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js');
workbox.routing.registerRoute(
new RegExp('\.png$'),
workbox.strategies.cacheFirst({
cacheName: 'images-cache',
})
);