“Av Den Röda Tråden”

0
8

JavaScript är vad de kallar för “single-trådad.” Som Brian Barbour uttrycker det:

Detta betyder att det har en call stack och ett minne högen.

Vi känner alla en symptom på ett regelbundet i form av prestanda jank och icke-interaktivitet på delar eller hela webbplatser. Om vi ger JavaScript massor av jobb och det blir verkligen fullt upp att göra dem, då är det inte att göra andra saker, som till exempel hantering av våra event handlers snabbt.

Det har varit en intressant punkt/counter-punkt combo nyligen längs dessa linjer.

Das Surma har kämpat för att flytta så mycket JavaScript av den röda tråden som du eventuellt kan. I själva verket, när det gäller att använda Webben Arbetstagare, föreslår han:

Du bör alltid använda Web Workers.

Webb Arbetstagare att vara det primära sättet att köra JavaScript av den röda tråden.

Det är massor att tänka på, naturligtvis, men jag gillar hur han jämför detta med hur andra språk kallar den röda tråden i “UI-tråd.” Om det du gör är att UI-relaterade, gör det i den röda tråden, om det inte, gör det av den röda tråden. Ett exempel? Statlig förvaltning.

David Gilbertson måste ha läst det och skrev:

Jag såg en artikel nyligen som gör det fall att en uppdatering av en Redux store var en bra kandidat för Web Workers eftersom det inte UI arbete (och icke-UI arbete som inte hör hemma på den röda tråden). Att slänga den behandling av personuppgifter över att en arbetstagare tråden låter det vettigt, men tanken slog mig som en liten, umm, akademiska.

David: s viktigaste punkten, tycks det mig, är att vissa av de dryga JavaScript saker som vi måste göra är ett svar till användaren åtgärder där användaren måste vänta på saker och ting till slut i alla fall, så en okänslig UI under den tiden är OK. Men för något som inte initieras av användaren och tar längre tid än att säga 100ms — han håller en Webb Arbetstagare är till hjälp.

(Funderar på att 100ms sak, det är värt att notera att en viktig punkt Das Surma gör är att världen är full av low-end telefoner — och vem vet vad 100ms på en high-end telefon är när översatta till på en low-end telefon.)