ceci est mon premier post, mais je suis heureux de rejoindre cette communauté. J'ai une question concernant JavaScript dont je suis complètement déconcerté. Je suis en train d'écrire une application JavaScript qui extrait les données d'un serveur en utilisant ajax et l'ajoute à un graphique. J'utilise Jquery et Highcharts comme framework, puis j'écris mon propre 'wrapper' JavaScript autour de Highcharts pour produire l'interface. Lorsque la fonction processData est rappelée avec la réponse jSON, elle commence par i = 1, même si je ne devrais même pas être initialisée ou même déclarée. D'autres variables sont également définies. (Je sais cela en utilisant des outils de développement de chrome pour déboguer). Cela rend ma boucle non exécutable et aucune de mes données n'est ajoutée au graphique.La méthode JavaScript commence w/variables assignées ?? très confus
Je ne sais pas combien de code afficher, mais ce sont les parties les plus pertinentes. Je peux en ajouter d'autres si nécessaire.
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();
}
Ce sont les deux méthodes d'un graphe appelé appelé classe I.
Merci si quelqu'un a des idées! -Matt P
'i' ne commencera jamais en tant que 1. La seule façon dont votre boucle ne s'exécutera pas est si data.length == 0. Faites' alert (data.length) 'en haut de' processData' et vérifiez. – Matt