Встречается на собеседованиях • сегодня
Как решить проблему с зависанием страницы
Проблема зависания страницы обычно связана с блокировкой основного потока. Основные причины и решения:
- Долгие вычисления - выносим в Web Workers
javascript
// Основной поток
const worker = new Worker('worker.js');
worker.postMessage(data);
worker.onmessage = (e) => handleResult(e.data);
// worker.js
self.onmessage = (e) => {
const result = heavyCalculation(e.data);
self.postMessage(result);
};- Оптимизация рендеринга:
- Используем
requestAnimationFrameдля анимаций - Разбиваем большие списки на чанки (виртуализация)
- Применяем
will-changeдля сложных анимаций
- Дебаунс/троттлинг частых событий:
javascript
function debounce(fn, delay) {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), delay);
};
}- Мемоизация дорогих вычислений:
javascript
const memoize = (fn) => {
const cache = new Map();
return (...args) => {
const key = JSON.stringify(args);
return cache.has(key) ? cache.get(key) : (cache.set(key, fn(...args)), cache.get(key));
};
};Для диагностики используйте Performance и Memory инструменты DevTools.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы