DOM и React Senior DOM на практике обновлено
throttle на кадрах
Условие
rafThrottle(fn, raf): не чаще одного вызова за кадр, с последними аргументами. Функция запроса кадра приходит вторым аргументом. Верни обёртку с методом cancel().
Что проверяют тесты
один вызов на кадр с последними аргументами
следующий кадр снова планируется
cancel отменяет запланированный вызов
Как подойти
Для обработчиков scroll, mousemove и resize это правильнее обычного throttle по времени: браузер сам задаёт темп, и вызов приходится ровно перед отрисовкой, а не посреди неё. Последние аргументы обязательны - иначе позиция курсора окажется устаревшей на кадр.
Подсказки: 2
- Флаг «кадр уже запрошен» плюс хранение последних аргументов.
- Внутри колбэка кадра флаг надо сбросить до вызова функции.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.