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

Gan*_*yer 5 ajax node.js d3.js crossfilter dc.js

我正在为大型数据集创建交互式可视化.由于数据集的大小,无法在浏览器中加载数据集.我们在节点服务器上使用crossfilter来加载和过滤数据服务器端.我想知道我是否能以某种方式将服务器端交叉滤波器滤波器与dc.js图表​​相结合.

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

如果有人可以建议在dc.js客户端和crossfilter服务器之间采用类似的AJAX通信机制,那将非常有用.

Eth*_*ett 5

希望听到更多关于您在这里的经历的信息。我的发现是,客户端-服务器延迟是Crossfilter解决的主要问题之一。有兴趣了解您是否发现服务器上的Crossfilter实际上为您买了什么,以及交互性是否足够好以至于可以在合理的延迟时间内使用。似乎使用数据库可能更快。

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


Gor*_*don 5

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

最近在dc.js邮件列表上有一个关于交换crossfilter的讨论,这几乎是同样的问题:

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

你需要编组的主要功能是group.alldimension.filter.对不起,我不知道的人crossfilter远程访问,但我知道足够多的人这样做几乎这一点,我毫不怀疑它可以工作.

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