Проверяет умение диагностировать проблемы производительности фронтенда, когда UI реагирует на действия пользователя, но с заметными задержками, что важно для отзывчивости приложений.
Когда приложение «зависает», но скролл и клики всё же работают с лагами, это обычно означает, что главный поток (main thread) перегружен задачами, которые блокируют его на короткие, но частые интервалы. Браузер не может вовремя обработать события ввода и перерисовать кадр, поэтому пользователь ощущает задержку.
function processItems(items) {
// Тяжёлая синхронная операция блокирует main thread
for (let i = 0; i < items.length; i++) {
heavyCalculation(items[i]);
}
}
// Решение: разбить на чанки через requestIdleCallback
function processInChunks(items, chunkSize = 100) {
let index = 0;
function chunk() {
const end = Math.min(index + chunkSize, items.length);
for (; index < end; index++) heavyCalculation(items[index]);
if (index < items.length) requestIdleCallback(chunk);
}
requestIdleCallback(chunk);
}Итог: для диагностики лагов используй Performance и Memory в DevTools, ищи длинные задачи и утечки, а затем оптимизируй главный поток через чанкинг, мемоизацию и виртуализацию. Это критично для приложений с интенсивным UI.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию