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()。

如果(图表)chart.destroy;

这是一个测试链接。http://www.highcharts.com/tests/?file=memory-chart-destroy

于 2012-12-13T08:24:51.917 回答