gpt4 book ai didi

javascript - dcjs、crossfilter - 如何完全处理图表

转载 作者:行者123 更新时间:2023-12-03 08:28:11 24 4
gpt4 key购买 nike

我使用 dc.js 创建了一个仪表板。在我的仪表板中,有一个复选框允许用户在计数和金额之间切换仪表板行为。为此,我为所有组重新创建了具有不同 reduceSumcrossfilter。 (尽管,我不知道这是否是执行此操作的正确方法。)重新创建 crossfilter 后,我还必须重新创建 dc.js 图表。

我认为这可能会导致一些内存泄漏和性能问题,因为我已经为所有图表定义了 filtered 事件,并且不知道如何关闭该事件。此外,在选中和取消选中复选框后,页面速度也会变慢。

我的问题:是否有另一种方法可以完全更改交叉过滤器数据而无需重新创建 dc.js 图表?如果没有,如何正确删除 dc.js 图表以避免内存泄漏和性能问题?

最佳答案

我会回答第一个问题,但不会回答第二个问题。 (内存泄漏是一个重要的主题,但我只是不知道答案;如果您怀疑 .on('filtered',...) 您可以尝试 .on('filtered' , null) 但我不知何故怀疑这是唯一的循环。)

那么回到如何替换数据。这应该很简单:只需将组和维度重新分配给图表,然后调用 chart.render() 即可。 render 总是从头开始,因此它应该始终是安全的。即使 redraw 也经常在替换组和维度后起作用,因为 dc.js 图表只是从 group.all() 中提取数据并在维度上设置过滤器,所以他们不太关心你是否更换它们。

速度减慢的一个常见原因是在同一个交叉过滤器实例上创建越来越多的组和维度,但听起来您是从头开始创建交叉过滤器,所以这不是问题。

关于javascript - dcjs、crossfilter - 如何完全处理图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33460320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com