2013-04-24 228 views
2

我有它運行,每3分鐘一個動力曲線(使用的setInterval我打電話更新,在下面的順序啓動)D3力佈局圖會導致緩慢,在Firefox瀏覽器中

  • viz.update(); //attach new data from server like viz.path.data(data.links)
  • viz.nodes.data(..)
  • viz.enter(); // viz.path.enter().append("path")
  • viz.exit(); // path.exit().remove()
  • force.start();

當我將瀏覽器打開一段時間後,瀏覽器變慢,節點在我拖動時緩慢移動。我在這裏錯過了一些東西..

幫助讚賞。 謝謝。

+0

你可以發佈工作小提琴來幫助你嗎? – 2013-04-24 01:23:03

+0

我們在談論多少個節點?如果你總是獲得新的節點,你會很快遇到各種性能限制。 – nrabinowitz 2013-04-24 03:52:42

+0

Chrome/Chromium有這個問題嗎?我發現d3.js在那裏運行得更好(以犧牲使用更多內存爲代價) – Marjancek 2013-04-24 07:41:43

回答

1

Firefox中的SVG性能比Webkit/Chrome和IE10中的要慢。

在Firefox中仍然表現不錯。有幾件事你可以嘗試。

  • 要確保你不會離開周圍未使用/空元素(如<克> S),並擁有一切正常清理。太多的元素會很快殺死你的表現。
  • 減少使用不透明度的節點數量,儘可能少地使用它。
  • 減少元素的數量。

我還做了一件事,但不知道它是否有幫助,只是在再次調用force.start()之前調用force.stop()。

+1

我正在處理一組複雜的交互式圖形,現在使用d3和angular ..以及除IE <= 8和FF之外的所有內容完美。這對於FF來說是一個糟糕的組合。 – SgtPooki 2013-11-20 15:17:12