当我在平移时更新它时,如何使dygraph不丢失其y轴?

时间:2012-03-02 04:53:43

标签: javascript dygraphs

这可能有点模糊,但我正在开发一个查看器应用程序,该应用程序会对大型数据集进行分块,然后允许使用dygraphs进行查看,其中当您平移它时,任何一侧都会加载新的数据块。 / p>

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

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

如果你移动 - 拖动到平移,你会看到在添加新数据时图(和y轴)消失。要证明错误,请在Chrome控制台中运行此操作,当绘图消失时,您会看到[NaN,NaN]输出:

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

现在,会有各种涉及计时器的变通方法,但最终这似乎是dygraphs库本身的一个错误。是否有一种简单的方法可以修复修补程序?或者,如果有一种方法可以告诉平移器何时正在进行中,我可以简单地避免更改数据集,直到我知道用户不在平移的中间 - 但是没有正式的回调或标志,并且它看起来内部的isPanning标志已经被小心地隐藏在本地范围的上下文对象上,在那里它可以安全地避开我的窥探。

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

1 个答案:

答案 0 :(得分:1)

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

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

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