В прошлом я довольно много работал с javascript, включая некоторые манипуляции с DOM. Оттуда я узнал, что перекомпоновка/перерисовка в некоторых случаях могут быть серьезной проблемой производительности и, как правило, должны быть сведены к минимуму. Например, при добавлении группы div вы должны добавить все сразу (прикрепить их к div за пределами DOM, а затем прикрепить его), а не присоединять их по одному. То же самое касается перерисовки, которую можно вызвать, изменив свойства CSS элемента. Хотя я должен признать, что никогда особо не занимался перекрашиванием, так что я могу ошибаться насчет последней части.
Относится ли это также к SVG (видя, что он использует своего рода DOM, это кажется правдоподобным)? И есть ли разница для разных элементов SVG? Например, было бы разумно, чтобы элемент анимации не создавал перекомпоновку, поскольку это не новый элемент SVG, а скорее свойство.
Что-то, в чем я не уверен, так это перерисовки для SVG, существуют ли они вообще так же, как для CSS/HTML? В конце концов, анимация SMIL уже создает кадры, поэтому такая вещь, как «перерисовка», может не иметь никакого значения, поскольку новый кадр все равно будет отображаться.
Кто-нибудь с более глубоким пониманием внутренней работы SMIL, кто мог бы прояснить эти вещи для меня?