SVG を使用してブラウザーで実行される複雑な GUI を構築しています。SVG には、操作できる多くのオブジェクトがあります。
1 つまたはいくつかのオブジェクトを同時に操作する限り、すべてがスムーズに実行されますが、オブジェクトの大きなグループを移動し始めると、非常に遅くなります。
各属性を変更して SVG 要素を移動します。ブラウザーはDOMが変更されるたびにSVGをレンダリングするため、これは遅いと思います。要素のグループを移動するには、移動する要素の数だけSVGがレンダリングされます。これは正しいです?
私は自分の主張を証明すると思われる実験をしました。移動したいすべての要素を SVG グループにグループ化し、変換属性を変更してこのグループを移動する場合。動きはとてもスムーズです。この場合、SVG DOM を 1 回だけ変更し、SVG は 1 回だけ再レンダリングされます。
問題は、要素が常に同じ方法でグループ化されていないため、この手法を使用できないことです。また、要素を毎回再グループ化すると、不要な複雑さが増すように思えます。
すべてのオブジェクトを移動するまで SVG のレンダリングを延期する方法があるかどうか疑問に思っていましたか?