在客户机上使用dc.js和服务器上的crossfilter

我正在为大数据集创build交互式可视化。 数据集由于其大小而无法在浏览器中加载。 我们在节点服务器上使用交叉filter来加载和过滤数据服务器端。 我想知道如果我能以某种方式耦合服务器端交叉filter与dc.js图表​​。

我现在正在使用d3.js创build图表,但是想要使用dc.js中已有的各种图表。 我们基本上是在服务器端过滤数据,然后在客户端监听图表的变化,并在服务器上执行适当的过滤,并通过AJAX进行通信。

如果有人可以build议一种方法来在dc.js客户端和交叉filter服务器之间合并一个类似的AJAX通信机制,这将是非常有帮助的。

dc.js和crossfilter之间的耦合不是很紧密,这应该是可能的。

在dc.js邮件列表中,最近有一个关于交换filter的交谈,这个交叉filter几乎是同样的问题:

https://groups.google.com/forum/#!topic/dc-js-user-group/fkRoFHuqg4k

你需要编组的主要function是group.alldimension.filter 。 对不起,我不知道任何人远程访问交叉filter,但我知道有足够的人做这个,我毫不怀疑它可以工作。

这是一个相关的问题: https : //github.com/dc-js/dc.js/issues/602

好奇听到更多关于你在这里的经验。 我的发现是,客户端 – 服务器延迟是Crossfilter解决的主要问题之一。 有兴趣听听您是否发现服务器上的Crossfilter实际上会为您购买任何东西,并且如果交互性足够好以便在合理的延迟时间内有用。 似乎使用数据库可能会更快。

这就是说,在回答你的问题时,根据我的经验,dc.js不需要Crossfilter维度和组。 它只需要像Crossfilter尺寸和组一样工作的对象。 因此,如果您向dc.js提供具有.top()方法的对象,但这些.top()方法实际上使用AJAX命中服务器,并返回看起来像Crossfilter返回的数据结构,则该方法应该可行。 我只用非常基本的图表来完成这个工作,所以如果您使用更高级的function,您可能需要实现其他的方法。 我相信你会希望确保将方法调用块,直到他们返回数据。