JavaScript · Senior · Pytanie 27 z 75
Jak nie blokować UI przy przetwarzaniu 100 000 elementów w głównym wątku?
- ✓Poprawna odpowiedź: Podzielić pracę na porcje i oddawać wątek (lub przenieść ją do workera)
- 2Opakować pętlę w funkcję
async- wykona się w wątku w tle - 3Użyć
Promise.all- promise'y działają w równoległych wątkach
Wyjaśnienie
Zadania dłuższe niż 50 ms szkodzą responsywności (INP). async nie tworzy nowego wątku: synchroniczna pętla w środku nadal blokuje. Potnij pracę na kawałki i oddawaj wątek przez setTimeout, scheduler.yield() (gdzie jest obsługiwane) lub requestIdleCallback; ciężkie obliczenia przenieś do Web Workera.