Мы можем использовать requestAnimationFrame
, чтобы нарисовать рамку в нашем браузере. Однако, что произойдет, если у нас есть несколько анимаций на одной странице?Скорость печати веб-браузера с несколькими анимациями на странице
Если, например, у нас есть 3 пользовательских шатра и несколько эффектов затухания, так как каждый эффект имеет свой собственный requestAnimationFrame
, разве это не означает, что мы на самом деле рисуем браузер 5 раз каждый запрос кадра?
Кроме того, если я ограничу свои текстовые скроллеры FPS на 30FPS, но мои эффекты затухания работают с 45FPS, разве это не означает, что в промежутке в 1 секунду мы работаем в общей сложности 3 * 30 + 2 * 45 = 180 кадров картины?
Было бы лучше (учитывая, что я ограничиваю всю свою анимацию на странице той же скоростью FPS), чтобы 1 requestAnimationFrame
рисовать все мои анимации? В результате я получаю всего 30-60 кадров в секунду (зависит от предела FPS)?
Я просто пытаюсь найти способы, которые помогут максимально уменьшить использование ЦП.
Большое спасибо! очень признателен. Я прочитал несколько статей о 'requestAnimationFrame', и кажется, что' requestAnimationFrame' соберет все анимации для 1 картины за раз. Как вы думаете, я неправильно понял, что я читал? В вашей функции 'timeLoop' у вас есть аргумент' currentTime', но вы никогда не передавали его в качестве аргумента при вызове 'requestAnimationFrame', как переменная' currentTime' получает инициализацию и обновление тогда? Последний вопрос, следует ли использовать 'canvas' для выполнения моей анимации вместо' div '? это больше ЦП? – kfirba