Wprowadzenie do JavaScript Service Workers

Wprowadzenie do JavaScript Service Workers

Czy zastanawiałeś się kiedyś, jak niektóre strony internetowe wydają się działać, nawet gdy jesteś offline? Sekret jest prosty: te strony internetowe mają pracowników usług.





Service Worker to kluczowa technologia, która kryje się za wieloma natywnymi, podobnymi do aplikacji funkcjami nowoczesnych aplikacji internetowych.





Kim są pracownicy usług?

Pracownicy serwisu są wyspecjalizowanym typem Pracownicy sieci JavaScript . Service worker to plik JavaScript, który działa trochę jak serwer proxy. Przechwytuje wychodzące żądania sieciowe z Twojej aplikacji, umożliwiając tworzenie niestandardowych odpowiedzi. Możesz na przykład udostępniać użytkownikowi pliki z pamięci podręcznej, gdy jest on w trybie offline.





Service Workery umożliwiają również dodawanie funkcji, takich jak synchronizacja w tle, do aplikacji internetowych.

Dlaczego pracownicy usług?

Twórcy stron internetowych od dawna starają się rozszerzać możliwości swoich aplikacji. Zanim pojawili się pracownicy serwisu, można było skorzystać z różnych rozwiązań, aby było to możliwe. Szczególnie godny uwagi był AppCache, dzięki któremu zasoby pamięci podręcznej były wygodne. Niestety miał problemy, które sprawiły, że było to niepraktyczne rozwiązanie dla większości aplikacji.



fajne rzeczy do zrobienia z terminalem

AppCache wydawał się dobrym pomysłem, ponieważ pozwalał na bardzo łatwe określenie zasobów do buforowania. Jednak przyjął wiele założeń dotyczących tego, co próbujesz zrobić, a następnie strasznie się zepsuł, gdy Twoja aplikacja nie spełniała dokładnie tych założeń. Przeczytaj Jake Archibald's (niestety zatytułowany, ale dobrze napisany) Pamięć podręczna aplikacji to douchebag po więcej szczegółów. (Źródło: MDN )

Service Workery to aktualna próba zmniejszenia ograniczeń aplikacji internetowych, bez wad technologii takich jak AppCache.





Przypadki użycia dla Service Workers

Więc na co dokładnie pozwalają ci pracownicy usług? Service Workery umożliwiają dodawanie do aplikacji sieci Web funkcji charakterystycznych dla aplikacji natywnych. Mogą również zapewnić normalne działanie na urządzeniach, które nie obsługują pracowników serwisu. Takie aplikacje są czasami nazywane Progresywne aplikacje internetowe (PWA) .

czy potrzebuję zabezpieczenia przeciwprzepięciowego?

Oto niektóre funkcje, które umożliwiają service workery:





  • Umożliwienie użytkownikowi dalszego korzystania z aplikacji (lub przynajmniej jej części), gdy nie ma już połączenia z internetem. Service Workery osiągają to, obsługując buforowane zasoby w odpowiedzi na żądania.
  • W przeglądarkach opartych na Chromium, Service Worker jest jednym z wymagań, aby można było zainstalować aplikację internetową.
  • Service Workery są niezbędne, aby Twoja aplikacja internetowa mogła zaimplementować powiadomienia push.

Cykl życia pracownika usługi

Pracownicy usług mogą kontrolować żądania dotyczące całej witryny lub tylko części jej stron. Określona strona sieci Web może mieć tylko jednego aktywnego Service Worker, a wszystkie Service Workery mają cykl życia oparty na zdarzeniach. Cykl życia pracownika usługi ogólnie wygląda tak:

  1. Rejestracja i pobranie pracownika. Życie pracownika usługi rozpoczyna się w momencie zarejestrowania go przez plik JavaScript. Jeśli rejestracja się powiedzie, service worker pobiera, a następnie zaczyna działać w specjalnym wątku.
  2. Po załadowaniu strony kontrolowanej przez Service Worker, Service Worker otrzymuje zdarzenie „install” (instalacja). Jest to zawsze pierwsze zdarzenie odbierane przez Service Worker i można skonfigurować nasłuchiwanie tego zdarzenia w ramach procesu roboczego. Zdarzenie „install” jest zwykle używane do pobierania i/lub buforowania wszelkich zasobów, których potrzebuje Service Worker.
  3. Po zakończeniu instalacji Service Worker otrzymuje zdarzenie „aktywuj”. To zdarzenie umożliwia pracownikowi wyczyszczenie nadmiarowych zasobów używanych przez poprzednich pracowników usługi. Jeśli aktualizujesz pracownika serwisu, zdarzenie aktywacji zostanie uruchomione tylko wtedy, gdy będzie to bezpieczne. Dzieje się tak, gdy nie ma załadowanych stron, które nadal korzystają ze starej wersji programu Service Worker.
  4. Następnie pracownik serwisu ma pełną kontrolę nad wszystkimi stronami, które zostały załadowane po pomyślnej rejestracji.
  5. Ostatnią fazą cyklu życia jest nadmiarowość, która występuje, gdy pracownik serwisu zostanie usunięty lub zastąpiony nowszą wersją.

Jak korzystać z Service Workerów w JavaScript

Interfejs API Service Workera ( MDN ) udostępnia interfejs, który umożliwia tworzenie i interakcję z pracownikami usług w języku JavaScript.