Нюансы о производительности setTimeout/setInterval в связи с canvas?
День добрый, тостерчане. Решил начать изучение javascript более глубоко, не ограничиваясь одним jquery или другими фреймворками. Задумал написать небольшую игру с использованием canvas и сразу возник вопрос задания динамики. Однозначно без setTimeout и setInterval не обойтись (хотя последнее под сомнением). Но только представил, сколько одновременно будет элементов, которые шевелятся, так задумался, насколько быстро сможет справляться браузер с отрисовкой на коротких интервалах (50-150 миллисекунд, а может и чаще). Что посоветуете в плане возможной оптимизации рендера? Стоит ли начать с динамического построения фракталов?
- Использовать 2-3 наложенных друг на друга canvas как слои;
- Кешировать в img все, что можно заранее нарисовать и при отрисовке использовать только drawImage();
- Не перерисовывать все, что можно не перерисовывать.
Да, об этом читал. Отрисовка мира с каждым небольшим движением пользовательским/автоматическим точно будет влиять на fps) Особенно с телефона. Кстати, обрадовало, что обновленный 4S до 9 iOS (достаточно) не тупит при ресурсоемких таких играх.