JavaScript · Senior · Frage 27 von 75
Wie vermeidet man das Blockieren der UI bei der Verarbeitung von 100.000 Einträgen im Hauptthread?
- 1Die Arbeit in Teile zerlegen und den Thread freigeben (oder in einen Worker verlegen)
- 2Die Schleife in eine
async-Funktion packen - sie läuft in einem Hintergrund-Thread - 3
Promise.allnutzen - Promises laufen in parallelen Threads
Antwort zeigen
Richtige Antwort: Die Arbeit in Teile zerlegen und den Thread freigeben (oder in einen Worker verlegen)
Erklärung
Aufgaben über 50 ms schaden der Reaktionsfähigkeit (INP). async erzeugt keinen neuen Thread: Eine synchrone Schleife darin blockiert weiterhin. Man zerlegt die Arbeit und gibt den Thread über setTimeout, scheduler.yield() (wo unterstützt) oder requestIdleCallback frei; schwere Berechnungen verlegt man in einen Web Worker.