これは私の最初の投稿ですが、このコミュニティに参加することに興奮しています。完全に困惑している JavaScript に関する質問があります。
ajax を使用してサーバーからデータを取得し、グラフに追加する JavaScript アプリケーションを作成しています。フレームワークとして Jquery と Highcharts を使用し、Highcharts の周りに独自の JavaScript 'wrapper' を作成してインターフェイスを作成しています。
processData 関数が jSON 応答でコールバックされると、i は初期化も宣言もされていないにもかかわらず、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();
}
これらは両方とも、グラフと呼ばれる、私が宣言したクラスのメソッドです。
誰かアイデアがあればよろしくお願いします!-マットP