【发布时间】:2014-05-08 01:20:02
【问题描述】:
我有一个交叉过滤器数据集很大的情况,大约 2000 行。在 D3 图上渲染交叉过滤器数据需要一些时间,尤其是在较旧的计算机和移动平板电脑上。有什么方法可以对交叉过滤器数据进行切片,以便 D3 图形可以在 UI 上逐步呈现交叉过滤器数据?在对 dc.js 渲染对象进行调用时,crossfilter 对象已经加载了数据 - 就像在这个伪代码中一样 -
var cfGroup, cfDim;
init: function()
{
var ndxObj = crossfilter(incomingData);
cfDim = ndxObj.dimension(//pick a dimension);
cfGroup = cfDim.group(){//group function};
var sliderChart = dc.barChart("#lineslider-id");
}
// this function is called every time the page is loaded or switched to
renderChart : function()
{
// How do I slice the CF object and call redraw() successively?
sliderChart.width(20).height(40).dimension(cfDim).group(cfGroup);
sliderChart.redraw();
}
【问题讨论】:
-
问题:在您的renderChart 函数中,为什么要重置sliderChart 上的dimension() 和group() 访问器?为什么不只是 redraw()?
-
我同意不需要这些访问器。我将删除 sliderChart renderChart 函数中的 dimension() 和 group() 访问器。您认为这会影响性能吗?
-
不确定,但我不会感到惊讶。我认为它可能会迫使 dc.js 在它需要做的只是更新时完全重新计算图表。
标签: javascript d3.js dc.js crossfilter