У меня есть несколько HTML canvas
элементов внутри различных директив AngularJS. Каждый из этих элементов анимируется с использованием requestAnimationFrame
.Несколько анимаций холста HTML5
- Как насчет производительности? Можно ли назвать
requestAnimationFrame
для каждогоcanvas
/directive
или использует одинservice
сcallback
функциями для всех функций рендеринга? - Прежде чем содержимое может быть нарисовано, в функции рендеринга сделано много расчетов. Для каждого кадра эти вычисления необходимы. Должно ли это быть сделано до звонка
requestAnimationFrame
или это нормально иметь огромное количество вычислений после этого звонка?
Согласно [некоторым тестам] (https://jsfiddle.net/c3wue8pf/), я сделал, кажется, что все raf даже смешаны в одном (все они имеют один и тот же аргумент времени). Вызывающий порядок, похоже, соблюдается в FF и Chrome. Когда кадр отбрасывается, весь вызов также отбрасывается. – Kaiido
теперь, чтобы лучше соответствовать потребностям OP, возможно, он должен проверить, действительно ли нужно обновлять анимацию в каждом кадре: если некоторые из них выходят за пределы экрана, возможно, рендеринг можно опустить, а обновления будут выполняться во времени, а не инкрементный; если расчеты тяжелые, возможно, веб-работники могут помочь; и т.п. – Kaiido