我正在構建一個使用SVG在瀏覽器中運行的複雜GUI。 SVG有許多可以被操縱的對象。SVG的渲染可以推遲到我完成操縱它嗎?
只要我在同一時間操縱一個或幾個對象一切都平穩運行,但是當我開始移動大組對象時,事情開始變得非常緩慢。
我通過更改每個屬性來移動SVG元素。我認爲這很慢,因爲瀏覽器在每次更改DOM時都會呈現SVG,所以要移動一組元素以使SVG得到渲染的次數與要移動的元素的次數相同。它是否正確?
我做了一個我認爲證明了我的觀點的實驗。如果我將所有要移動到SVG組中的元素進行分組,然後通過更改其變換屬性來移動該組。此舉非常順利。在這種情況下,我只更改SVG DOM一次,SVG只重新渲染一次。
問題是我不能使用這種技術,因爲元素沒有一直以相同的方式分組。每次重新組合元素似乎都增加了許多不必要的複雜性。
我想知道是否有方法推遲SVG的渲染,直到我移動所有的對象?
歡迎來到SO。請包括您使用的代碼和工作演示,例如http://jsfiddle.net。 –