2

这可能有点晦涩难懂,但我正在开发一个查看器应用程序,该应用程序将一个大型数据集分块,然后允许使用 dygraphs 查看它,当您平移时,新数据块会在任一侧加载。

问题是,当您在平移图形时更新图形时,它似乎失去了 y 轴范围。您可以在官网的动态更新演示中看到这一点:

http://dygraphs.com/tests/dynamic-update.html

如果您移至平移,您会看到绘图(和 y 轴)随着新数据的添加而消失。要证明错误,请在 Chrome 控制台中运行此命令,您将看到 [ NaN, NaN ] 输出,因为绘图消失了:

window.setInterval(function() { console.log(window.g.yAxisRange()); }, 200);

现在,会有各种涉及计时器的解决方法,但最终这似乎是 dygraphs 库本身的一个错误。有没有一种简单的方法来修补补丁?或者,如果有一种方法可以判断何时进行平底锅,我可以简单地避免更改数据集,直到我知道用户不在平底锅中间 - 但没有官方回调或标志,而且它看起来内部 isPanning 标志已被小心地隐藏在本地范围的上下文对象中,在我的窥探中它是安全的。

修补或猴子修补此问题的最快方法是什么?

4

1 回答 1

2

这是 dygraphs 中的一个错误,现已修复。如果您下载最新版本(从 gi​​thub 或 dygraphs.com),您将不再遇到此问题。

如果你想要血淋淋的细节,这里是修复: https ://github.com/danvk/dygraphs/commit/97583b90be3e80c95654d010db8a4b3f8813bb7a

平移代码将数据存储在不属于它的对象中,当updateOptions()被调用时,这些对象被破坏并随之而来。

于 2012-03-04T17:58:42.707 回答