HTML5 Canvas vs SVG/VML?

Скажите, пожалуйста, что вы думаете о HTML5 Canvas vs SVG/VML? Дайте мне за и против в сравнении.

Спасибо!!!

Ответ 1

HTML5 Canvas - это просто поверхность рисования для битовой карты. Вы настроили ничью (произнесите цвет и толщину линии), нарисуйте эту штуку, и тогда Canvas не знает об этом: он не знает, где это или что это такое, это всего лишь пиксели. Если вы хотите рисовать прямоугольники и перемещать их или выбирать, тогда вам нужно закодировать все это с нуля, включая код, чтобы помнить, что вы их нарисовали.

С другой стороны, каждый созданный вами элемент SVG/VML является реальным элементом в DOM. По умолчанию это позволяет вам лучше отслеживать созданные вами элементы и облегчать работу с вещами, такими как события мыши, по умолчанию.

Canvas будет лучше для более быстрых действий и тяжелых манипуляций с растровыми изображениями (например, анимация), но возьмет больше кода, если вы хотите много интерактивности.