Встречается на собеседованиях • сегодня

Какие были проблемы с анимацией до requestAnimationFrame

До requestAnimationFrame анимации делали через setInterval или setTimeout, что вызывало несколько проблем:

  1. Точность таймеров - браузеры ограничивают минимальную задержку (обычно 4мс), что делало анимации менее плавными.
  1. Просадки FPS - если вкладка неактивна, таймеры продолжали работать, тратя ресурсы впустую.

  2. Рассинхронизация с монитором - анимации не были привязаны к частоте обновления экрана (обычно 60Hz), что вызывало "дрожание".

Пример проблемного кода:

js
// Плохая практика
setInterval(() => {
  element.style.left = (parseInt(element.style.left) + 1) + 'px';
}, 16); // Попытка имитировать 60fps

requestAnimationFrame решает эти проблемы, синхронизируясь с частотой обновления экрана и автоматически паузируясь при скрытии вкладки.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы