我正在构建一个使用SVG在浏览器中运行的复杂GUI。 SVG有许多可以被操纵的对象。SVG的渲染可以推迟到我完成操纵它吗?
只要我在同一时间操纵一个或几个对象一切都平稳运行,但是当我开始移动大组对象时,事情开始变得非常缓慢。
我通过更改每个属性来移动SVG元素。我认为这很慢,因为浏览器在每次更改DOM时都会呈现SVG,所以要移动一组元素以使SVG得到渲染的次数与要移动的元素的次数相同。它是否正确?
我做了一个我认为证明了我的观点的实验。如果我将所有要移动到SVG组中的元素进行分组,然后通过更改其变换属性来移动该组。此举非常顺利。在这种情况下,我只更改SVG DOM一次,SVG只重新渲染一次。
问题是我不能使用这种技术,因为元素没有一直以相同的方式分组。每次重新组合元素似乎都增加了许多不必要的复杂性。
我想知道是否有方法推迟SVG的渲染,直到我移动所有的对象?
欢迎来到SO。请包括您使用的代码和工作演示,例如http://jsfiddle.net。 –