JQuery 1.7.2 を使用しています。ライブデータチャートを作成するためにハイチャートを使用しています。ページの読み込み時に、ハイチャートの ajax 呼び出しを使用して別のページで使用している JSON 形式のデータを記述している 1 つの C# ページを作成しました。関数内でその ajax 呼び出しを実行し、ajax 呼び出しの成功イベントで、1 分後に setTimeout を作成して再度関数を呼び出すので、毎回最新のデータを取得します。ここまでは、すべてが非常にうまく機能します。
しかし、ブラウザを開いたままにして翌日に来るよりも、1分ごとに4時間しかデータを取得していないというデータがあります。その時、私のaspxページはゼロからの新しい新鮮なデータで始まるので、ハイチャートは自動的にすべてのポイントを削除し、新しいデータをプッシュするはずですが、そうしていません. ページを更新すると、すべてが正常に機能し始めます。とにかくそれ自体でリフレッシュする必要がありますか
私のajax呼び出しのコードは次のとおりです
function recieveData() {
var pathArray = window.location.pathname.split( '/' );
var chart = $('#container').highcharts();
$.ajax({
url: '/' + pathArray[1] + '/HomePageChartData.aspx',
dataType: 'json',
cache: false,
success: function (data) {
chart.yAxis[0].setExtremes(data.minY, data.maxY, true, true);
chart.series[1].setData([]);
chart.series[1].name = data.lineSeriesName;
chart.series[0].setData([]);
chart.series[0].name = data.areaSeriesName;
for (var x in data.lineSeriesData) {
chart.series[1].addPoint([data.lineSeriesData[x][0], data.lineSeriesData[x][1]]);
}
for (var x in data.areaSeriesData) {
chart.series[0].addPoint([data.areaSeriesData[x][0], data.areaSeriesData[x][1]]);
}
setTimeout(recieveData, 60000);
}
});
}
@@説明を追加して編集しました以前は適切にできなかったようですので、もう一度やり直します。私のシナリオでは、データが午前 9 時から午後 12 時 30 分までの間に送信され、翌日の午前 7 時までデータベースに残ります。したがって、私のハイチャートは、午前 9 時から午後 12 時 30 分までの間、毎分データを取得します。これは、問題なく非常にうまく機能しています。しかし、翌日の午前 7 時にすべてのデータを消去し、午前 9 時に新しいデータを取得し始めると、ハイ チャートが自動的にクリアされず、新しいデータが取得され始めます。
しかし、ブラウザを更新すると、新しいデータが取得され、うまく機能します。したがって、すべてのデータを消去すると、ajax がアラートを受け取り、ページをリロードするか、ハイチャートからデータをクリアする必要があるように見えました。
だから私はajax呼び出しでそれを行うためのイベントや方法を探していました。専門家からのいくつかのガイダンス。