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 workerer 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 sompush-varslerogbackground syncog harmuligheten til å avskjære og håndtere nettverksforespørsler, inkludertprogrammatisk håndtering av en buffer av responser.I fremtiden kan servicearbeidere støtte andre ting som
periodisk synkroniseringellergeofencing.
Ifølge denne PR-en til create-react-app
Service workersintroduseres med create-react-app viaSWPrecacheWebpackPlugin.Å 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:
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.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.
