javascript - Hva er service worker i react js


Når man lager en React-app, blir service worker aktivert som standard. Hvorfor brukes service worker? Hva er grunnen til at den aktiveres som standard?

Svar #1

Du trenger kanskje ikke en service worker for applikasjonen din. Hvis du lager et prosjekt med create-react-app, blir den aktivert som standard

Servicearbeidere er godt forklart i denne artikkelen. For å oppsummere fra den

En service worker er et skript som nettleseren din kjører i bakgrunnen, atskilt fra en nettside, og åpner døren for funksjoner som ikke trenger en nettside eller brukerinteraksjon. I dag inkluderer de allerede funksjoner som push-varsler og background sync og har muligheten til å avskjære og håndtere nettverksforespørsler, inkludert programmatisk håndtering av en buffer av responser.

I fremtiden kan servicearbeidere støtte andre ting som periodisk synkronisering eller geofencing.

Ifølge denne PR-en til create-react-app

Service workers introduseres med create-react-app via SWPrecacheWebpackPlugin.

Å bruke en serverarbeider med en cache-først-strategi gir ytelsesfordeler, siden nettverket ikke lenger er en flaskehals for å oppfylle navigasjonsforespørsler. Det betyr imidlertid at utviklere (og brukere) først vil se implementerte oppdateringer ved "N+1" besøk til en side, siden tidligere bufrede ressurser oppdateres i bakgrunnen.

Kallet til register service worker er aktivert som standard i nye apper, men du kan alltid fjerne det, og da er du tilbake til vanlig atferd.

Svar #2

Med enkle og klare ord er det et skript som nettleseren kjører i bakgrunnen og som overhodet ikke har noen tilknytning til nettsider eller DOM, og som gir ferdige funksjoner. Det hjelper deg også med å cache dine ressurser og andre filer slik at når brukeren er offline eller på et tregt nettverk.

Noen av disse funksjonene er proxying av nettverksforespørsler, push-varsler og bakgrunnssynkronisering. Servicearbeidere sørger for at brukeren har en rik offline-opplevelse.

Du kan tenke på servicearbeideren som noen som sitter mellom klienten og serveren, og alle forespørslene som sendes til serveren går gjennom servicearbeideren. I utgangspunktet en mellommann. Siden alle forespørslene går gjennom servicearbeideren, er den i stand til å avskjære disse forespørslene på farten.

Svar #3

Jeg vil gjerne legge til 2 viktige hensyn om Service Workers som bør tas i betraktning:

  1. Servicearbeidere krever HTTPS. Men for å muliggjøre lokal testing gjelder ikke denne begrensningen for localhost. Dette er av sikkerhetsgrunner, da en servicearbeider fungerer som en mann i midten mellom webapplikasjonen og serveren.

  2. Med Create React App er Service Worker bare aktivert i produksjonsmiljøet, for eksempel når du kjører npm run build.

Service Worker er her for å hjelpe med å utvikle en Progressiv Web App. En god ressurs om dette i konteksten av Create React App kan finnes på deres nettside her.

Relaterte artikler