私はmbostock の素晴らしい d3を単純な html レンダリングに使用しています。これは、空の div を選択して HTML で埋めるという、私が考えることができる最も簡単な方法です。
d3.select($('#thediv')[0])
.selectAll('p')
.data(l).enter()
.append('p')
.html(function(d){return 'd3 ' + d;});
Win7 Chrome では、大規模なデータセットの場合、これが非常に遅いように見えることに気付きました。(20000 アイテムで 3.5 秒)
この例は、非常に単純な (ただし長い) リストをレンダリングします: http://jsfiddle.net/truher/NQaVM/
可視性の切り替えという 2 つの解決策を試しました。
$('#thediv').toggle()
切り離された要素への書き込み:
var p = $('<div>')
d3.select(p[0])...
$('#theparent').append(p)
結果は次のとおりです。
Firefox:一様に高速 (600 ~ 700 ミリ秒)
Chrome:トグルまたはデタッチは高速 (800 ミリ秒)、それ以外は非常に低速 (3.5 秒)
Internet Explorer:デタッチは高速ですが、それでも遅い (1.8 秒)、それ以外は非常に遅い (3.2 秒)
私の質問はこれです:より良い解決策はありますか?