我是JavaScript和flot的新手,希望有人能帮助我解决这个问题。 我试图实现它有一个页面上的动态flot图。使用Ajax的动态Flot图表
要绘制的系列数据位于每隔几秒会更新一次的文件中。我希望flot图每隔几秒钟读取一次数据文件,并用新数据更新。
这是我得到的代码不工作。图表在加载页面时显示正常,但不会每5秒更新一次。
任何帮助,非常感谢。
$(function() {
var dataFolder = "http://localhost/graphdata/";
/***********************************************************************
* Function to get series data from a file
***********************************************************************/
function getSeriesData(file) {
var url= dataFolder + file;
var data = null;
$.ajax({
async: false,
url: url,
method: 'GET',
dataType: 'json',
success: function(datasets){
data = datasets;
},
error: function(error,text,http){
alert(error + " " + text + " " + http);
}
});
return data;
}
var plot = $.plot($("#placeholder"),
[
{label: "A", data: getSeriesData("dataA.txt")},
{label: "B", data: getSeriesData("dataB.txt")},
{label: "C", data: getSeriesData("dataC.txt")}
],
{
series: {
lines: {
color: "red",
show: true
},
points: {
show: true
},
shadowSize: 0,
hoverable: true
},
colors: ["red", "blue", "green"],
yaxis: {
min: 0, ticks:5
},
xaxis: {
mode: 'time',
timeformat: '%H:%m',
show: false
},
legend:{
show: true
},
grid:{
color: "green",
show: true,
backgroundColor: "white",
hoverable: true
}
}
);
var updateInterval = 1000 * 5;
function update() {
plot.setData([
{label: "A", data: getSeriesData("dataA.txt")},
{label: "B", data: getSeriesData("dataB.txt")},
{label: "C", data: getSeriesData("dataC.txt")}
]);
plot.setupGrid();
plot.draw();
setTimeout(update, updateInterval);
}
update();});
是的,我试过当测试更新功能,它工作正常。它在我使用ajax调用来读取导致问题的文件中的数据时。存储在文件中的示例数据是[[1,123],[2,234],[3,345],[4,532]] – AndyB 2013-03-14 22:30:35