实时绘制与Flot和AJAX -不绘图
Plotting realtime with Flot and AJAX - Doesn't plot
我试图使用flot JQuery库绘制时间数据,但它根本没有。
目标是从JSON文件中获取数据,如:{
"dados": 150
}
我使用的方法是kinda:
function getData() {
$.ajax({
type: 'GET',
url: './data/realtime.json',
dataType: "json",
success: function (aferido){
console.log("Data received. -> var aferido.dados: ", aferido.dados);
data.push([Date.now(), aferido.dados]); //push something like [timestamp ,value]
console.log("Data pushed. -> var data: ", data);
interactive_plot.setData(data);
interactive_plot.draw();
}
});
}
在控制台中,"data"变量是正确的,在每次更新中增加。例:
数据推。-> var data: [Array[2], Array[2], Array[2], Array[2], Array[2],数组[2],[2]数组,数组[2],[2]数组,数组[2],[2]数组,数组[2],数组[2],[2]数组,数组[2],[2]数组,数组[2],[2]数组,数组[2],数组[2],[2]数组,数组[2],[2],[2]数组,数组[2]]
但是图形保持静态。光吗?我已经尝试更改setData
参数,包括数组括号,但问题仍然存在。
它是静态的原因是因为这就是flot的工作原理——当你添加新值时,它不会自动移动x轴
由于你使用时间作为y轴,它不断上升,所以你需要在飞行中改变网格并使其滚动(自动推进)。
检查这个简单的JSbin
function getRandomData() {
res.push([i, Math.random()*50])
i++;
return res;
}
function update() {
plot.setData([getRandomData()]);
//Make the x asis move as i increases
axes = plot.getAxes();
axes.xaxis.options.max = i; //also try Math.max(100,i); //Starts to advance after the graph is filled
axes.xaxis.options.min = i-100; //and Math.max(0, i-100);
plot.setupGrid();
plot.draw();
setTimeout(update, updateInterval);
}
另外,看看这个示例页面——ajax和实时更新
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 如何通过ajax刷新JSF填充的javascript变量
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 如何在php文件中获取$.post-ajax传递的值
- Replacing $ .ajax?
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- Ajax发布表单序列化,发布引号'
- 通过Ajax将JavaScript函数传递给PHP文件
- ajax请求的顺序总是不同的
- 可以't使用Polymer's的核心ajax
- Ajax Live搜索发布到Laravel视图
- Ajax聊天消息重复而不仅仅是更新
- 从控制器返回后Ajax启动事件激发
- PHP AJAX图片上传示例不上传
- 从ajax请求中获取javascript对象
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 如何在Javascript中解析AJAX数组的特定部分
- Ajax文件加载和<输入>文件加载
- Javascript/jQuery中的并行Ajax调用
- 实时绘制与Flot和AJAX -不绘图