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:
- 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.
- 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.
- 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.
- 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.
- 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