1

JavaScript ベースの html ダッシュボードを作成しています。ダッシュボード グラフの値を更新するために、次のコードを記述しました。

var chart, options;

function loadDynamicData() {            
    var data = window.parent.getDynamicData();
    var dataArray = data.split(',');

    for(var i = 0; i < chartData.length; i++) {
        chartData[i].data.pop();
        chartData[i].data.push(parseInt(dataArray[i],10));
    }
}

$(document).ready(function() {
    //initialize options here
    setInterval(function () {
        loadDynamicValues(); // loads dynamic values through ajax
                             // and updates options
        chart = new Highcharts.Chart(options);
    }, 300000);
});

しかし問題は、これをブラウザで長時間 (約 1 時間) 実行すると、メモリの使用量が増え、ブラウザが応答しなくなることです。メソッドを削除して、setInterval()内部にあるコードを一度実行すると、問題はありません。

ここで何が問題になる可能性がありますか?

4

1 に答える 1

3

新しいチャートを作成する前に chart.destroy() を実行してください。

if (チャート) chart.destroy;

ここにテスト用のリンクがあります。http://www.highcharts.com/tests/?file=memory-chart-destroy

于 2012-12-13T08:24:51.917 に答える