我需要制作一个带有D3 DC和交叉滤波器的仪表板。
来自Web服务的数据将近一百万条记录。
但是,交叉过滤器引发的错误“未捕获的RangeError:超出最大调用堆栈大小”。
什么会导致交叉过滤器以这种方式崩溃?
答案 0 :(得分:0)
最可能的原因是您拥有的数据不是自然排序的:也就是说,您的数据中包含NaN。
问题在于,NaN < x
对于所有数字x
都是错误的,而NaN > x
也总是错误的。因此,如果您的排序例程未明确检查无效输入,则它可以永久运行。而且,如果该排序例程是递归的,则可能会崩溃。
出于效率的考虑,交叉滤波器不检查其输入。也许可以在不影响效率的情况下添加验证?