O introducere în JavaScript Service Workers

O introducere în JavaScript Service Workers

Te-ai întrebat vreodată cum unele site-uri web par să continue să funcționeze chiar și atunci când ești offline? Secretul este simplu: aceste site-uri au lucrători de servicii.





Lucrătorii de servicii sunt tehnologia cheie din spatele multor caracteristici native asemănătoare aplicațiilor ale aplicațiilor web moderne.





Ce sunt lucrătorii de servicii?

Lucrătorii de servicii sunt un tip specializat de Lucrători web JavaScript . Un lucrător de service este un fișier JavaScript care funcționează un pic ca un server proxy. Captează solicitările de rețea trimise din aplicația dvs., permițându-vă să creați răspunsuri personalizate. Puteți, de exemplu, să difuzați fișiere stocate în cache pentru utilizator atunci când acesta este offline.





Lucrătorii de servicii vă permit, de asemenea, să adăugați funcții precum sincronizarea în fundal la aplicațiile dvs. web.

De ce lucrătorii de servicii?

Dezvoltatorii web au încercat să-și extindă capacitățile aplicațiilor lor de mult timp. Înainte să vină lucrătorii de service, ați putea folosi diverse soluții pentru a face acest lucru posibil. Unul deosebit de notabil a fost AppCache, care a făcut ca resursele să fie convenabile. Din păcate, a avut probleme care au făcut-o o soluție nepractică pentru majoritatea aplicațiilor.



AppCache părea a fi o idee bună, deoarece vă permitea să specificați activele pentru a stoca în cache foarte ușor. Cu toate acestea, a făcut multe presupuneri despre ceea ce încercați să faceți și apoi s-a rupt îngrozitor când aplicația dvs. nu a respectat exact acele ipoteze. Citește-l pe Jake Archibald (din păcate, intitulat, dar bine scris) Application Cache este un Douchebag pentru mai multe detalii. (Sursă: MDN )

Lucrătorii de servicii sunt încercarea actuală de a reduce limitările aplicațiilor web, fără dezavantajele tehnologiei precum AppCache.





Cazuri de utilizare pentru lucrătorii de servicii

Deci, ce anume vă lasă lucrătorii din service să faceți? Lucrătorii de servicii vă permit să adăugați caracteristici caracteristice aplicațiilor native la aplicația dvs. web. De asemenea, pot oferi o experiență normală pe dispozitivele care nu acceptă lucrătorii de service. Aplicații ca aceasta sunt uneori numite Aplicații web progresive (PWA) .

Iată câteva dintre funcțiile pe care lucrătorii de service le fac posibile:





  • Permiteți utilizatorului să continue să folosească aplicația (sau cel puțin părți ale acesteia) atunci când nu mai este conectat la internet. Lucrătorii de servicii reușesc acest lucru prin furnizarea de active stocate în cache ca răspuns la solicitări.
  • În browserele bazate pe Chromium, un service worker este una dintre cerințele pentru ca o aplicație web să poată fi instalată.
  • Lucrătorii de service sunt necesari pentru ca aplicația dvs. web să poată implementa notificări push.

Ciclul de viață al unui lucrător de servicii

Lucrătorii de servicii pot controla solicitările pentru un întreg site sau doar o parte din paginile site-ului. O anumită pagină web poate avea un singur lucrător de serviciu activ și toți lucrătorii de servicii au un ciclu de viață bazat pe evenimente. Ciclul de viață al unui lucrător de servicii arată în general astfel:

  1. Înregistrarea și descărcarea lucrătorului. Viața unui lucrător de service începe atunci când un fișier JavaScript îl înregistrează. Dacă înregistrarea are succes, lucrătorul de servicii se descarcă și apoi începe să ruleze într-un fir special.
  2. Când o pagină controlată de lucrătorul de service este încărcată, lucrătorul de service primește un eveniment de „instalare”. Acesta este întotdeauna primul eveniment pe care îl primește un lucrător de servicii și puteți configura un ascultător pentru acest eveniment în interiorul lucrătorului. Evenimentul „instalare” este utilizat în general pentru a prelua și/sau a stoca în cache orice resurse de care lucrătorul de servicii are nevoie.
  3. După ce lucrătorul de service termină instalarea, acesta primește un eveniment „activare”. Acest eveniment permite lucrătorului să curețe resursele redundante utilizate de lucrătorii anteriori ai serviciului. Dacă actualizați un lucrător de service, evenimentul de activare se va declanșa numai atunci când puteți face acest lucru în siguranță. Aceasta se întâmplă odată ce nu există pagini încărcate care să utilizeze versiunea veche a lucrătorului de servicii.
  4. După aceea, lucrătorul de service are control deplin asupra tuturor paginilor care au fost încărcate după ce a fost înregistrată cu succes.
  5. Ultima fază a ciclului de viață este redundanța, care are loc atunci când lucrătorul de service este eliminat sau înlocuit cu o versiune mai nouă.

Cum să utilizați lucrătorii de servicii în JavaScript

API-ul Service Worker ( MDN ) oferă interfața care vă permite să creați și să interacționați cu lucrătorii de servicii în JavaScript.

convertiți muzică Google Play în mp3