Ответ 1
Я запустил кучу чисел в HTML-чертеже и в холсте. Я мог бы рассказать о преимуществах каждого из них, но я дам некоторые из соответствующих результатов моих тестов для рассмотрения для вашего конкретного приложения:
Я сделал тестовые страницы Canvas и HTML, у обоих были подвижные "узлы". Узлы холста были объектами, которые я создал и отслеживал в Javascript. Узлы HTML были <div>
s, хотя они могут быть <image>
или <video>
тоже.
Я добавил 100 000 узлов к каждому из моих двух тестов. Они выполнялись совершенно по-другому:
Вкладка теста HTML навсегда загрузилась (при минимальном времени менее 5 минут хром попросил убить страницу в первый раз). Менеджер задач Chrome говорит, что вкладка занимает 168 МБ. Он занимает 12-13% процессорного времени, когда я смотрю на него, 0%, когда я не смотрю.
Закладка Canvas загружается за одну секунду и занимает 30 МБ. Это также занимает 13% времени процессора все время, независимо от того, смотрит ли он на него.
Перетаскивание на странице HTML более плавное, что, как я полагаю, ожидается, так как текущая настройка - перерисовать ВСЕ каждые 30 миллисекунд в тесте Canvas. Для этого есть множество оптимизаций для Canvas. (аннулирование холста, являющееся самым легким, также отсекающим областями, выборочным перерисовкой и т.д., зависит только от того, насколько вы чувствуете себя реализацией)
Видео на странице HTML, в то время как я не перемещаю объекты, на самом деле совершенно гладкое.
На холсте видео всегда медленно, так как я постоянно перерисовываюсь, потому что я отключил мою аннулирование холста. Конечно, есть много возможностей для улучшения.
Только рисование/загрузка далеко быстрее в Canvas и имеет гораздо больше возможностей для оптимизации (т.е. исключение простейших вещей очень просто).