Bevezetés a JavaScript Service Workers-be

Bevezetés a JavaScript Service Workers-be

Elgondolkozott már azon, hogy egyes webhelyek hogyan működnek továbbra is offline állapotban? A titok egyszerű: ezeken a webhelyeken vannak szervizmunkások.





A modern webalkalmazások számos natív alkalmazásszerű funkciója mögött a szervizmunkások jelentik a kulcsfontosságú technológiát.





Mik azok a szervizmunkások?

A szervizmunkások egy speciális típus JavaScript webmunkások . A service worker egy JavaScript-fájl, amely kicsit úgy működik, mint egy proxyszerver. Elkapja az alkalmazás kimenő hálózati kéréseit, lehetővé téve egyéni válaszok létrehozását. Kiszolgálhatja például a gyorsítótárazott fájlokat a felhasználónak, amikor offline állapotban van.





A szervizmunkások lehetővé teszik olyan szolgáltatások hozzáadását is a webalkalmazásokhoz, mint a háttérben történő szinkronizálás.

Miért a szolgáltató dolgozók?

A webfejlesztők már régóta próbálják bővíteni alkalmazásaik képességeit. Mielőtt a szervizesek megjelentek volna, különféle megoldásokat használhatott ennek lehetővé tételére. Különösen figyelemre méltó az AppCache, amely kényelmessé tette az erőforrások gyorsítótárazását. Sajnos voltak olyan problémák, amelyek miatt a legtöbb alkalmazás számára nem volt praktikus megoldás.



Az AppCache jó ötletnek tűnt, mert lehetővé tette a gyorsítótárba helyezendő eszközök megadását nagyon egyszerűen. Azonban sok feltételezést fogalmazott meg azzal kapcsolatban, hogy mit próbált tenni, majd borzalmasan összeomlott, amikor az alkalmazás nem követte pontosan ezeket a feltételezéseket. Olvassa el Jake Archibald (sajnos a címe, de jól megírva) Az alkalmazás-gyorsítótár egy Douchebag további részletekért. (Forrás: MDN )

A szervizmunkások jelenleg arra törekszenek, hogy csökkentsék a webalkalmazások korlátait, az olyan technológia hátrányai nélkül, mint az AppCache.





Használati esetek szervizmunkások számára

Tehát pontosan mit engednek meg a szervizesek? A szervizmunkások lehetővé teszik a natív alkalmazásokra jellemző funkciók hozzáadását webalkalmazásához. Normál élményt nyújthatnak olyan eszközökön is, amelyek nem támogatják a szervizmunkásokat. Az ehhez hasonló alkalmazásokat néha hívják Progresszív webalkalmazások (PWA) .

Íme néhány olyan szolgáltatás, amelyet a szervizesek lehetővé tesznek:





  • Hagyja, hogy a felhasználó továbbra is használja az alkalmazást (vagy legalábbis annak egy részét), amikor már nem csatlakozik az internethez. A szervizmunkások ezt úgy érik el, hogy a kérésekre válaszul gyorsítótárazott eszközöket szolgálnak ki.
  • A Chromium-alapú böngészőkben a webalkalmazások telepíthetőségének egyik követelménye a szervizmunkás.
  • A szervizmunkásokra van szükség ahhoz, hogy webalkalmazása leküldéses értesítéseket tudjon megvalósítani.

A szolgáltató munkás életciklusa

A szolgáltató munkatársai a teljes webhelyre vagy a webhely oldalainak csak egy részére vonatkozó kéréseket irányíthatnak. Egy adott weboldalon csak egy aktív szervizmunkás lehet, és minden szervizmunkásnak van eseményalapú életciklusa. Egy szervizmunkás életciklusa általában így néz ki:

  1. A dolgozó regisztrációja és letöltése. A szervizmunkás élete akkor kezdődik, amikor egy JavaScript-fájl regisztrálja. Ha a regisztráció sikeres, a Service Worker letölti, majd egy speciális szálon belül futni kezd.
  2. Amikor a szervizmunkás által vezérelt oldal betöltődik, a szervizmunkás „telepítési” eseményt kap. Mindig ez az első esemény, amelyet a szervizmunkás kap, és beállíthat egy figyelőt az eseményhez a dolgozón belül. Az „install” esemény általában a szervizmunkásnak szükséges erőforrások lekérésére és/vagy gyorsítótárazására szolgál.
  3. Miután a szervizmunkás befejezte a telepítést, „aktiválás” eseményt kap. Ez az esemény lehetővé teszi a dolgozó számára, hogy megtisztítsa a korábbi szervizmunkások által használt redundáns erőforrásokat. Ha szervizmunkást frissít, az aktiválási esemény csak akkor indul el, ha biztonságosan megteheti. Ez azt jelenti, hogy nincs olyan betöltött oldal, amely továbbra is a Service Worker régi verzióját használja.
  4. Ezt követően a szervizmunkás teljes mértékben felügyeli az összes olyan oldalt, amelyek a sikeres regisztráció után betöltöttek.
  5. Az életciklus utolsó szakasza a redundancia, amely akkor következik be, amikor a szervizmunkást eltávolítják vagy újabb verzióra cserélik.

A Service Workers használata JavaScriptben

A Service Worker API ( MDN ) biztosítja azt a felületet, amely lehetővé teszi, hogy JavaScriptben hozzon létre és kommunikáljon velük.

hogyan nézheted meg a youtube -ot barátaiddal