【问题标题】:Dc.js brushing lag. Filtering multiple times unlike dc.js version 1.3dc.js 刷机滞后。与 dc.js 版本 1.3 不同,多次过滤
【发布时间】:2014-07-01 10:35:00
【问题描述】:

我在服务器上使用带有交叉过滤器的 dc.js。所以每个刷机事件基本上都是对返回结果的服务器的 AJAX 调用。 现在,当我使用 dc.js 版本 > 1.3.0 刷机时,我遇到了巨大的滞后。我注意到它在拖动画笔时向服务器发送了多个过滤请求。 这不是 dc.js 版本 1.3.0 的情况,其中过滤只会在用户完成拖动时发生(在鼠标按下或其他情况下)。这也是我的假设。

我查看了这个https://groups.google.com/forum/#!msg/dc-js-user-group/3AlQht_8Eqs/6DSzEgDWAYkJ 并设置了 dc.EVENT_DELAY=0 但即使这样也无济于事。如果有人可以帮助我禁用鼠标拖动的这种连续过滤,那就太好了。我只需要在设置画笔后进行过滤。

我需要使用 1.7+ 版本来获得对 rangeChart() 的支持。

【问题讨论】:

    标签: javascript dc.js crossfilter


    【解决方案1】:

    我认为您需要将 EVENT_DELAY 设置为 0 以外的值以限制事件。我相信延迟是以毫秒为单位的,所以也许 200 或 300 会是一个不错的值?

    【讨论】:

    • 是的,将其设置为零会导致更多事件,更像是交叉过滤器演示。但如果它不是零,就会有延迟。 :-( 我相信你必须进入代码来改变它。很快就会尝试提出想法,但现在,看看dc.trigger 是如何实现的,以及它是从哪里调用的。请提出问题!
    • @Gordon dc.js 提供一个图表选项以仅在“brushend”而不是“brush”事件上应用过滤器是否有意义?这似乎是他正在寻找的东西,我可以看到它在人们希望图表中的动态更少的情况下也很有用,因为有时这可能会令人困惑或计算成本太高。
    • 好的,感谢您的洞察力! :) 我将 dc.js 代码更改为具有“brushEnd”事件(在 1.7.1 版中已删除)。我从“brush”事件中删除了过滤代码并添加到它“brushEnd”。
    • @EthanJewett,是的,绝对......Here 是 lastlegion 提交的问题(谢谢!),供进一步讨论。我还没有想到比布尔选项更通用的方法,但我认为通过传递函数来指定策略有一些有趣的可能性。
    猜你喜欢
    • 2018-01-25
    • 2015-05-09
    • 2014-08-02
    • 1970-01-01
    • 2017-05-12
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多