Úvod do JavaScript Service Workers

Úvod do JavaScript Service Workers

Přemýšleli jste někdy nad tím, jak se zdá, že některé weby fungují, i když jste offline? Tajemství je jednoduché: tyto webové stránky mají servisní pracovníky.





Servisní pracovníci jsou klíčovou technologií mnoha nativních funkcí moderních webových aplikací podobných aplikacím.





Co jsou servisní pracovníci?

Servisní pracovníci jsou specializovaným typem Weboví pracovníci JavaScriptu . Service worker je soubor JavaScriptu, který funguje trochu jako proxy server. Zachycuje odchozí síťové požadavky z vaší aplikace a umožňuje vám vytvářet vlastní odpovědi. Můžete například uživateli poskytnout soubory uložené v mezipaměti, když je offline.





jak zvýšit jas v systému Windows 10

Servisní pracovníci vám také umožňují přidat do webových aplikací funkce, jako je synchronizace na pozadí.

Proč servisní pracovníci?

Weboví vývojáři se již dlouhou dobu snaží rozšířit možnosti svých aplikací. Než přišli servisní pracovníci, mohli jste k tomu použít různá řešení. Zvláště pozoruhodný byl AppCache, díky kterému bylo ukládání zdrojů do mezipaměti pohodlné. Bohužel to mělo problémy, které z něj udělaly nepraktické řešení pro většinu aplikací.



AppCache se zdál být dobrý nápad, protože vám umožnila určit aktiva, která se mají uložit do mezipaměti opravdu snadno. Vytvářelo však mnoho předpokladů o tom, co jste se snažili udělat, a poté se děsivě rozbilo, když vaše aplikace tyto předpoklady přesně nesplňovala. Přečtěte si knihu Jake Archibald (bohužel s názvem, ale dobře napsanou) Aplikační mezipaměť je douchebag Více podrobností. (Zdroj: MDN )

Servisní pracovníci jsou současným pokusem snížit omezení webových aplikací bez nevýhod techniky, jako je AppCache.





Případy použití pro servisní pracovníky

Co přesně vám tedy pracovníci služeb nechávají dělat? Servisní pracovníci vám umožňují přidávat do vaší webové aplikace funkce, které jsou charakteristické pro nativní aplikace. Mohou také poskytovat běžné prostředí na zařízeních, která nepodporují servisní pracovníky. Takovým aplikacím se někdy říká Progresivní webové aplikace (PWA) .

Zde jsou některé z funkcí, které servisní pracovníci umožňují:





  • Umožnit uživateli pokračovat v používání aplikace (nebo alespoň jejích částí), když již není připojen k internetu. Servisní pracovníci toho dosahují poskytováním prostředků uložených v mezipaměti v reakci na požadavky.
  • V prohlížečích založených na Chromiu je servisní pracovník jedním z požadavků na instalaci webové aplikace.
  • Servisní pracovníci jsou nezbytní k tomu, aby vaše webová aplikace mohla implementovat push notifikace.

Životní cyklus servisního pracovníka

Servisní pracovníci mohou kontrolovat požadavky na celý web nebo pouze na část stránek webu. Konkrétní webová stránka může mít pouze jednoho aktivního servisního pracovníka a všichni servisní pracovníci mají životní cyklus založený na událostech. Životní cyklus servisního pracovníka obecně vypadá takto:

  1. Registrace a stažení pracovníka. Život servisního pracovníka začíná, když jej zaregistruje soubor JavaScript. Pokud je registrace úspěšná, servisní pracovník se stáhne a poté spustí ve speciálním vláknu.
  2. Když se načte stránka řízená servisním pracovníkem, servisní pracovník obdrží událost 'instalace'. Toto je vždy první událost, kterou servisní pracovník obdrží, a můžete pro tuto událost nastavit posluchače uvnitř pracovníka. Událost 'install' se obecně používá k načtení a/nebo kešování jakýchkoli prostředků, které servisní pracovník potřebuje.
  3. Poté, co servisní pracovník dokončí instalaci, obdrží událost 'activate'. Tato událost umožňuje pracovníkovi vyčistit nadbytečné zdroje používané předchozími servisními pracovníky. Pokud aktualizujete servisního pracovníka, událost activate se spustí pouze tehdy, když je to bezpečné. To je, jakmile nejsou načteny žádné stránky, které stále používají starou verzi service worker.
  4. Poté má servisní pracovník plnou kontrolu nad všemi stránkami, které byly načteny po úspěšné registraci.
  5. Poslední fází životního cyklu je redundance, ke které dochází, když je servisní pracovník odebrán nebo nahrazen novější verzí.

Jak používat Service Workers v JavaScriptu

Service Worker API ( MDN ) poskytuje rozhraní, které vám umožňuje vytvářet a komunikovat s pracovníky služeb v JavaScriptu.