【问题标题】:dynamically load data for flot time series when panning平移时动态加载浮点时间序列的数据
【发布时间】:2012-08-25 02:05:51
【问题描述】:

我正在成功地使用 Flot 来绘制我正在处理的时间序列项目的使用情况。浮动图从过去 24 小时开始,并允许平移和缩放。

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

几个月后,我有这么多数据(当然),数组变得相当大。我想限制从服务器下载的 json 只包含浮点图的可见光谱。限制初始下载很容易,但我不知道如何处理平移和缩放。我已经有绑定到平移和缩放的事件处理程序,但它们会在每次移动时触发(尤其是平移)。

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

【问题讨论】:

  • 破解 jquery.flot.navigate.js 并在 onDragStart 和 onDragEnd 中注入一些状态后,我能够在 plotpan 事件中做出有根据的决定。我突然想到,我还可以检查新的 xaxis min/max 是否已经存在于数据数组中,并且只有 AJAX 获取增量

标签: time-series flot panning


【解决方案1】:

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

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

一个非常简单的例子:

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

【讨论】:

  • 这是唯一的方法吗?没有钩子或平移 start|end 变量?
猜你喜欢
  • 2019-03-14
  • 1970-01-01
  • 1970-01-01
  • 2019-04-26
  • 2015-04-25
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
相关资源
最近更新 更多