Razlika med spletnimi vtičnicami, spletnimi delavci in servisnimi delavci PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Razlika med spletnimi vtičnicami, spletnimi delavci in servisnimi delavci

Spletne vtičnice, spletni delavci, servisni delavci ... to so izrazi, ki ste jih morda prebrali ali preslišali. Morda ne vsi, a verjetno vsaj eden od njih. In tudi če dobro obvladate front-end razvoj, obstaja velika verjetnost, da boste morali poiskati, kaj pomenijo. Ali pa ste morda kot jaz in jih občasno pomešate. Vsi izrazi izgledajo in zvenijo zelo podobno in zelo enostavno jih je zamenjati.

Razčlenimo jih skupaj in ločimo spletne vtičnice, spletne delavce in storitvene delavce. Ne v smislu poglobljenosti, kjer se poglobimo in z vsakim pridobimo praktične izkušnje – bolj kot majhen pomočnik, ki ga naslednjič dodamo med zaznamke I potrebuješ osvežitev.

Hitri napotki

Začeli bomo s pregledom na visoki ravni za hitro primerjavo in kontrast.

Feature Kaj je
Spletna vtičnica Vzpostavi odprto in trajno dvosmerno povezavo med brskalnikom in strežnikom za pošiljanje in prejemanje sporočil prek ene same povezave, ki jo sprožijo dogodki.
Spletni delavec Omogoča izvajanje skriptov v ozadju v ločenih nitih, da prepreči, da bi skripti drug drugega blokirali v glavni niti.
Storitev Worker Vrsta spletnega delavca, ki ustvari storitev v ozadju, ki deluje kot vmesna programska oprema za obravnavanje omrežnih zahtev med brskalnikom in strežnikom, tudi v situacijah brez povezave.

Spletne vtičnice

Spletna vtičnica je dvosmerni komunikacijski protokol. Pomislite na to kot na stalen klic med vami in prijateljem, ki se ne bo končal, razen če se eden od vaju odloči prekiniti. Edina razlika je v tem, da ste vi brskalnik, vaš prijatelj pa strežnik. Odjemalec pošlje zahtevo strežniku in strežnik se odzove z obdelavo odjemalčeve zahteve in obratno.

Razlika med spletnimi vtičnicami, spletnimi delavci in servisnimi delavci

Komunikacija temelji na dogodkih. A WebSocket objekt je vzpostavljen in se poveže s strežnikom, sporočila med strežnikom pa sprožijo dogodke, ki jih pošiljajo in sprejemajo.

To pomeni, da imamo ob vzpostavitvi začetne povezave komunikacijo med odjemalcem in strežnikom, kjer se povezava vzpostavi in ​​ostane živa, dokler se odjemalec ali strežnik ne odločita prekiniti s pošiljanjem CloseEvent. Zaradi tega so spletne vtičnice idealne za aplikacije, ki zahtevajo stalno in neposredno komunikacijo med odjemalcem in strežnikom. Večina definicij, ki sem jih videl, kliče aplikacije za klepet kot običajni primer uporabe – vtipkate sporočilo, ga pošljete strežniku, sprožite dogodek in strežnik se odzove s podatki, ne da bi morali znova in znova pingati strežnik.

Razmislite o tem scenariju: Ste na poti ven in se odločite vklopiti Google Zemljevide. Verjetno že veste, kako Google Zemljevidi delujejo, če pa ne, samodejno poišče vašo lokacijo, ko se povežete z aplikacijo, in jo spremlja, kamor koli greste. Uporablja prenos podatkov v realnem času, da spremlja vašo lokacijo, dokler je povezava vzpostavljena. To je spletna vtičnica, ki vzpostavlja trajen dvosmerni pogovor med brskalnikom in strežnikom, da se ti podatki posodabljajo. Športna aplikacija z rezultati v realnem času lahko na ta način uporablja tudi spletne vtičnice.

Velika razlika med spletnimi vtičnicami in spletnimi delavci (in v razširitvi, kot bomo videli, servisnimi delavci) je, da imajo neposreden dostop do DOM. Medtem ko spletni delavci (in storitveni delavci) delujejo v ločenih nitih, so spletne vtičnice del glavne niti, ki jim daje možnost manipuliranja z DOM.

Obstajajo orodja in storitve za pomoč pri vzpostavljanju in vzdrževanju povezav Web Socket, vključno z: SocketCluster, AsyncAPI, kavboj, WebSocket King, Kanaliin Gorilla WebSocket. MDN ima a tekoči seznam, ki vključuje druge storitve.

Več informacij o spletnih vtičnicah

Spletni delavci

Razmislite o scenariju, kjer morate izvesti kup zapletenih izračunov, hkrati pa spreminjati DOM. JavaScript je aplikacija z eno nitjo in izvajanje več kot enega skripta lahko moti uporabniški vmesnik, ki ga poskušate spremeniti, in zapleten izračun, ki se izvaja.

Tu nastopijo spletni delavci.

Spletni delavci omogočajo izvajanje skriptov v ozadju v ločenih nitih, da preprečijo, da bi skripti drug drugega blokirali v glavni niti. Zaradi tega so odlični za izboljšanje zmogljivosti aplikacij, ki zahtevajo intenzivne operacije, saj se te operacije lahko izvajajo v ozadju na ločenih nitih, ne da bi upodabljanje vplivalo na uporabniški vmesnik. Vendar niso tako odlični pri dostopanju do DOM, ker za razliko od spletnih vtičnic spletni delavec teče zunaj glavne niti v svoji lastni niti.

Spletni delavec je objekt, ki izvaja skriptno datoteko z uporabo a Worker objekt za opravljanje nalog. In ko govorimo o delavcih, se ti običajno uvrščajo v eno od treh vrst:

  • Predani delavci: Predani delavec je dosegljiv samo s skriptom, ki ga kliče. Še vedno izvaja naloge tipičnega spletnega delavca, kot so njegovi večnitni skripti.
  • Skupni delavci: Skupni delavec je nasprotje predanega delavca. Do njega je mogoče dostopati z več skripti in lahko praktično izvede katero koli nalogo, ki jo izvede spletni delavec, če obstaja v isti domeni kot delavec.
  • Storitveni delavci: Storitveni delavec deluje kot omrežni proxy med aplikacijo, brskalnikom in strežnikom, kar omogoča izvajanje skriptov tudi v primeru, ko je omrežje brez povezave. To bomo obravnavali v naslednjem razdelku.

Več informacij o spletnih delavcih

Storitveni delavci

Na nekatere stvari kot razvijalci nimamo vpliva in ena od teh stvari je omrežna povezava uporabnika. Ne glede na omrežje, na katerega se uporabnik poveže, takšno je. Po najboljših močeh lahko optimiziramo naše aplikacije, tako da delujejo najbolje, kar lahko, na kateri koli povezavi, ki se uporablja.

Storitveni delavci so ena od stvari, ki jih lahko naredimo za postopno izboljšanje delovanja aplikacije. Storitveni delavec sedi med aplikacijo, brskalnikom in strežnikom ter zagotavlja varno povezavo, ki teče v ozadju v ločeni niti, zahvaljujoč – uganili ste – spletnim delavcem. Kot smo izvedeli v zadnjem razdelku, so storitveni delavci ena od treh vrst spletnih delavcev.

Torej, zakaj bi sploh potrebovali storitvenega delavca med vašo aplikacijo in uporabnikovim brskalnikom? Spet nimamo nadzora nad uporabnikovo omrežno povezavo. Recimo, da povezava prekine iz neznanega razloga. To bi prekinilo komunikacijo med brskalnikom in strežnikom ter preprečilo prenos podatkov naprej in nazaj. Storitveni delavec vzdržuje povezavo in deluje kot asinhroni proxy, ki je sposoben prestrezati zahteve in izvajati naloge – tudi po izgubi omrežne povezave.

Ikona zobnika z oznako Service Worker med ikono brskalnika z oznako odjemalec in ikono oblaka z oznako strežnik.
Razlika med spletnimi vtičnicami, spletnimi delavci in servisnimi delavci

To je glavno gonilo tega, kar se pogosto imenuje »offline-first« razvoj. Sredstva lahko shranimo v lokalnem predpomnilniku namesto v omrežju, zagotovimo kritične informacije, če uporabnik prekine povezavo, vnaprej prenesemo stvari, da so pripravljene, ko jih uporabnik potrebuje, in zagotovimo nadomestne podatke kot odgovor na napake omrežja. So popolnoma asinhroni, vendar v nasprotju s spletnimi vtičnicami nimajo dostopa do DOM, saj delujejo v lastnih nitih.

Druga pomembna stvar, ki jo morate vedeti o servisnih delavcih, je, da prestrežejo vsako posamezno zahtevo in odgovor vaše aplikacije. Kot taki imajo nekatere varnostne posledice, predvsem to, da sledijo politiki istega izvora. Torej, to pomeni, da ni izvajanja storitvenega delavca iz CDN ali storitve tretje osebe. Zahtevajo tudi varno povezavo HTTPS, kar pomeni, da boste za delovanje potrebovali potrdilo SSL.

Več informacij o serviserjih

Zavijanje

To je zelo visoka razlaga razlik (in podobnosti) med spletnimi vtičnicami, spletnimi delavci in servisnimi delavci. Spet so si terminologija in koncepti dovolj podobni, da jih lahko pomešate drug z drugim, a upajmo, da vam to daje boljšo predstavo o tem, kako jih razlikovati.

Stvari smo začeli s hitro referenčno tabelo. Tukaj je ista stvar, vendar nekoliko razširjena za debelejše primerjave.

Feature Kaj je Večniten? HTTPS? dostop do DOM?
Spletna vtičnica Vzpostavi odprto in trajno dvosmerno povezavo med brskalnikom in strežnikom za pošiljanje in prejemanje sporočil prek ene same povezave, ki jo sprožijo dogodki. Deluje na glavni niti Ni potrebna Da
Spletni delavec Omogoča izvajanje skriptov v ozadju v ločenih nitih, da prepreči, da bi skripti drug drugega blokirali v glavni niti. Deluje v ločeni niti Obvezno Ne
Storitev Worker Vrsta spletnega delavca, ki ustvari storitev v ozadju, ki deluje kot vmesna programska oprema za obravnavanje omrežnih zahtev med brskalnikom in strežnikom, tudi v situacijah brez povezave. Deluje v ločeni niti Obvezno Ne

Časovni žig:

Več od Triki CSS