我无法用jquery-flot(flotcharts)做一个实时图表。
这是我的代码:
$(document).ready(function(){
var test = function(){
$.ajax({
type: "GET",
url: "index.json",
datatype:"json"
}).always(function(series) {
console.log(series);
update(series.responseText);
});
};
var options = {
xaxis: {
mode: "time"
}
};
var plot = $.plot($("#placeholder"), [{label:"test",data:[[1389185414000,0],[1389185415000,15449]]}], options);
function update(series) {
console.log(series);
plot.setData(series);
console.log(plot.getData());
plot.setupGrid();
plot.draw();
setTimeout(test, 100000);
}
test();
});
问题似乎与setdata函数有关。这是我从ajax请求得到的:
[{
label: "test",
data: [
[1389185414000, 0],
[1389185415000, 15449],
[1389185425000, 1406],
[1389185435000, 187],
[1389185445000, 1377],
[1389185455000, 1544],
[1389185465000, 270],
[1389185475000, 1681],
[1389185485000, 687]
]
}]
然后,如果我查看plot.getData返回的内容,则会为返回的json字符串中的每个字符创建一个新对象。 (例如:“[”的对象,一个用于“{”,一个用于“l”,依此类推。)
知道我可能做错了什么?
谢谢!
答案 0 :(得分:3)
您不能将字符串传递给setData;它需要一个数组。
你有一个字符串的原因是你没有将t
中的datatype
大写,因此jQuery不会将你的数据解释为JSON。