我正在使用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/
我尝试了两种解决方案,可见性切换:
$('#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 秒)
我的问题是:有更好的解决方案吗?