我正在创建一个基于javascript的html仪表板。为了刷新仪表盘图表中的值我写了下面的代码:setInterval()方法中的内存泄漏
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()
方法并运行一次内部的代码,那么没有问题。
这里有什么问题?
而且,Highchaets.Chart构造函数是做什么的?一般来说,如果我们看到'setInterval()'中运行的所有代码,我们只能回答这个问题。 – jfriend00
@ShivanRaptor我编辑了这篇文章。 – manas
@ jfriend00它包含在由HighCharts提供的HighCharts.js文件中。它不可能给出所有'Highcharts.Chart()'在这里做的事情。 – manas