자바 스크립트 기반 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