Рабочий файл: index.tsx
. Проект сделан на nextjs.
Для старта:
yarn
yarn dev
В браузере ввести localhost:3000
Представим, что у нас есть страница, которая загружает элементы по сети, парсит их, рендерит на экране и анимирует. За первые 2 шага отвечает функция heavyCalculations
. Остальное размазано по системе.
Вся конфигурация происходит в 2х файлах:
tailwindcss.config.js
для анимаций;pages/index.tsx
для всего остального.
- Анимация работает медленно;
- Вызовы
heavyCalculation
продолжаются даже после того, как все элементы загрузились и появились на экране; - Некорректно отображается статус загрукзи (
Calculating...
).
- Анимация должна работать плавно, вне зависимости от того, какой у пользователя процессор. Проверять буду так, что в performance вкладке поставлю CPU throttle на 4х;
- После того как все элементы появятся – не должно быть вызовов коллбэка в интервале.
totalCalls === MAX_CYCLES_COUNT
; - Надпись
Calculating...
должна показываться только когда происходит тяжёлое вычисление. И должна пропасть когда пункт №2 будет выполнен; - Опционально: переделать
setInterval
наrequestAnimationFrame
, но оставить ту же логику работы.
Гифка немного поела качесто, но на девайсе анимация выглядит плавно.