“Av De Viktigste Tråden”

0
7

JavaScript er hva de kaller “single-gjenger.” Som Brian Barbour setter det:

Dette betyr at det har one call stack, og ett minne haug.

Vi alle føler et symptom på at regelmessig i form av ytelse jank og ikke-interaktivitet på elementer eller hele nettsteder. Hvis vi gir JavaScript mange jobber og det blir veldig opptatt med å gjøre dem, så er det ikke å gjøre andre ting, som for eksempel håndtering vår event-handlere raskt.

Det har vært et interessant poeng/counter-punkt combo nylig langs disse linjene.

Das Surma har vært tatt til orde for å flytte så mye JavaScript av de viktigste tråden som du muligens kan. Faktisk, når det kommer til bruk av Web-Arbeidere, foreslår han:

Du bør alltid bruke Web-Arbeidere.

Web Arbeidstakere som blir den primære måten å kjøre JavaScript av de viktigste tråden.

Det er mye å tenke på, selvfølgelig, men jeg liker hvordan han sammenligner dette til hvordan andre språk kaller de viktigste tråden “UI-tråd.” Hvis det du gjør er UI-relatert, gjør det på den viktigste tråden, hvis det ikke er det, gjør det av main-tråden. Et eksempel? Statlig styring.

David Gilbertson må ha lest det, og skrev:

Jeg så en artikkel nylig gjør saken som oppdaterer en Redux butikken var en god kandidat for Web Arbeidstakere fordi det er ikke UI arbeid (og ikke-UI arbeid ikke hører hjemme på main-tråden). Hiver databehandling over til en tråd høres fornuftig, men den ideen slo ned i meg som et lite, umm, akademisk.

David ‘ s viktigste punktet, synes det meg, er at noen av heftig JavaScript ting vi trenger å gjøre er i respons til brukeren handlinger der brukeren må vente for ting til slutt uansett, så en skriver som ikke reagerer UI i løpet av denne tiden er OK. Men for alt som ikke er bruker-initiert og tar lengre tid enn si 100ms — han er enig i en Web Arbeidstaker er nyttig.

(Ser på som 100ms ting, det er verdt å merke seg at et viktig punkt Das Surma gjør er at verden er full av low-end telefoner — og hvem vet hva 100ms på en high-end telefon er når det oversettes til på en low-end telefon.)