这是我的第一篇文章,但我很高兴能加入这个社区。我有一个关于 JavaScript 的问题,我完全被难住了。
我正在编写一个 JavaScript 应用程序,它使用 ajax 从服务器中提取数据并将其添加到图表中。我使用 Jquery 和 Highcharts 作为框架,然后围绕 Highcharts 编写我自己的 JavaScript“包装器”来生成界面。
当使用 jSON 响应回调 processData 函数时,它以 i=1 开始,即使 i 甚至不应该被初始化甚至声明。其他变量也被设置。(我通过使用 chrome 开发人员工具进行调试知道这一点)。这使我的循环无法执行,并且我的任何数据都不会添加到图表中。
我不知道要显示多少代码,但这些是最相关的部分。如果需要,我可以添加更多。
function getData(series, min, max, numpts) {
if (series === undefined) {
console.log("error on getData");
return;
}
var request = {};
request.series = series;
if (min !== undefined) {
request.start = min;
} //in seconds
if (max !== undefined) {
request.end = max;
}
if (numpts !== undefined) {
request.numpts = numpts;
}
$.getJSON('/data', request, processData);
return;
}
function processData(data) {
// handle the data after it comes back from an ajax request
var curSeries,
chartSeries,
curPoint;
for (var i = 0; i < data.length; i ++) {
curSeries = data[i];
chartSeries = chart.get(curSeries.name);
if (chartSeries === null) {
//alert("oops");
chart.addSeries(curSeries);
} else {
for (var j = 0; j < curSeries.data.length; j ++) {
curPoint = curSeries.data[j];
chartSeries.addPoint(curPoint, false);
}
}
}
chart.redraw();
}
这两种方法都是我声明的名为 graph 的类的方法。
谢谢,如果有人有任何想法!-马特 P