to jest mój pierwszy post, ale jestem podekscytowany dołączeniem do tej społeczności. Mam pytanie dotyczące JavaScript, o którym jestem całkowicie zakłopotany.Metoda JavaScript zaczyna się od zmiennych przypisanych? bardzo zdezorientowany
Piszę aplikację JavaScript, która pobiera dane z serwera przy użyciu ajax i dodaje go do wykresu. Używam Jquery i Highcharts jako ramy, a następnie piszę własną "wrapper" JavaScriptu wokół Highcharts, aby stworzyć interfejs.
Gdy funkcja processData zostanie wywołana z powrotem z odpowiedzią jSON, zaczyna się ona od i = 1, nawet jeśli nie powinienem jeszcze być inicjowany, a nawet deklarowany. Ustawiane są również inne zmienne. (Wiem o tym z debugowania za pomocą narzędzi programistycznych Chrome). To sprawia, że moja pętla nie jest wykonywana i żadne z moich danych nie zostanie dodane do wykresu.
Nie wiem, ile kodu pokazać, ale są to najbardziej istotne części. W razie potrzeby mogę dodać więcej.
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();
}
Są to obie metody klasy I o nazwie graf wywołany.
Dzięki, jeśli ktoś ma jakieś pomysły! -Matt P
'i' nigdy nie zacznie się jako 1. Jedynym sposobem, w jaki twoja pętla nie zostanie wykonana, jest data.length == 0. Wykonaj' alert (data.length) 'na górze' processData' i sprawdź. – Matt