Mat*_*tyP 5 javascript ajax jquery highcharts
这是我的第一篇文章,但我很高兴加入这个社区.我有一个关于JavaScript的问题,我完全不知所措.
我正在编写一个JavaScript应用程序,它使用ajax从服务器提取数据并将其添加到图表中.我使用Jquery和Highcharts作为框架,然后在Highcharts周围编写我自己的JavaScript'包装器'来生成接口.
当使用jSON响应调用processData函数时,它以i = 1开头,即使我甚至不应该初始化甚至声明.还设置了其他变量.(我知道这可以通过使用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();
}
Run Code Online (Sandbox Code Playgroud)
这些都是我声明为图形的类的方法.
谢谢,如果有人有任何想法!-Matt P.
我会控制台检查您的数据对象,以确保它是您所期望的,因为即使i是预先声明的,该循环也应该正常工作:无论如何,您在循环开始时为其分配 0 。
我能想到在定义和初始化 i 之前定义和初始化 i 的唯一原因是,如果代码库中的其他地方没有使用var关键字初始化i。这样做会将其转储到全局范围(窗口对象)中,从而通过闭包将其提供给代码库中的任何函数。
如果它不在您的某个文件中,则可能位于 highcharts 图形库中(在这种情况下,从所述库中运行得非常快)。
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |