Der Stand der Web Worker im Jahr 2021

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Man muss die Hartnäckigkeit von Surma loben. Er setzt sich seit vielen Jahren für Web Workers als Weg zu besser funktionierenden Websites ein. Er ist wieder dabei, um sicherzustellen, dass wir alle die Landschaft verstehen.

[…] unabhängig davon, wo man hinschaut, wird Multithreading überall eingesetzt. iOS ermöglicht Entwicklern, Code einfach durch Grand Central Dispatch zu parallelisieren, Android tut dies über seinen neuen, einheitlichen Task-Scheduler WorkManager, und Spiele-Engines wie Unity verfügen über Job-Systeme. Der Grund, warum eine dieser Plattformen nicht nur Multithreading unterstützt, sondern es so einfach wie möglich macht, ist immer derselbe: Sicherstellen, dass sich Ihre App großartig anfühlt.

Surma, „The State Of Web Workers In 2021“

Im Grunde hat also jede Plattform ihre eigene Version von Multithreading, einschließlich des Webs. Es ist nur so, dass wir im Web quasi gegen die Single-Threaded-Natur von JavaScript „kämpfen“ müssen, indem wir Web Worker verwenden (die, falls Sie sich das fragen, „universell unterstützt“ sind). Die Frage ist: Wie und wofür? Für Letzteres zeigt Surma ein Beispiel eines Spiels, bei dem „der gesamte App-Zustand und die Spiellogik in einem Worker laufen.“ Für ersteres scheint die Hilfsbibliothek comlink eine große Arbeitserleichterung zu sein.

Persönlich wünsche ich mir, dass beliebte Tools das einfach irgendwie… machen. Ich weiß nicht, wie das genau aussehen würde, aber es fühlt sich irgendwie so an, als ob die Entwicklerkommunikation hier nicht wirklich etwas bewirkt. Was wäre, wenn beliebte Tools wie Apollo – das für viel „App-Zustand“ verantwortlich ist – das alles magisch vom Hauptthread auslagern würden. Macht das Sinn? Ist das möglich?