平移时动态加载flot时间序列的数据

时间:2012-08-24 17:23:17

标签: time-series flot panning

我正在使用Flot成功绘制我正在使用时间序列的项目的用法。 flot图表从过去24小时开始,允许平移和缩放。

数据每15分钟在服务器上进行一次采样,转换为json,并通过使用AJAX的忙碌轮询通过flot图下载(它会检查更改)。

几个月后,我有太多数据(当然),阵列变得相当大。我想限制从服务器下载的json只包含flot图的可见光谱。限制初始下载很容易,但我不知道如何处理平移和缩放。我已经有事件处理程序绑定到平移和缩放,但是它们会针对每一步移动(特别是平移)。

是否可以检测平移开始和结束的时间?

1 个答案:

答案 0 :(得分:0)

[编辑因为我错过了你已经拥有处理程序的事实]

如果你已经捕获了plotpan事件,你可以去掉它。添加一个在平移后触发一定时间(例如500毫秒)的计时器,并在每次触发平移时重置。这样,该动作仅在许多连续事件结束时运行一次。

一个非常简单的例子:

var delay = null;
element.on("plotpan", function() {
    if (delay) clearTimeout(delay);
    delay = setTimeout(function() {
        // do your stuff here
        delay = null;
    }, 500);
});