来自http://api.highcharts.com/highstock/Chart.destroy
destroy() - 删除图表并清除内存。在将新图表写入同一容器之前,应调用此方法。它在窗口卸载时被内部调用以防止泄漏。
以下是我在按钮点击上调用destroy的方法
http://jsfiddle.net/ihtus/20Ld7hg8/
var hc_options = {
chart: {
renderTo: 'container'
},
series: [{
name: 'USD to EUR',
data: usdeur
}]
};
var chart=new Highcharts.Chart(hc_options);
$('#button').click(function () {
chart.destroy();
$(this).attr('disabled', true);
});
在我的项目中,我在setInterval中多次重绘图表(使用更新的数据)。
以下是setInterval http://jsfiddle.net/ihtus/teg540zh/
的代码function init_graph() {
var hc_options = {
chart: {
renderTo: 'container'
},
series: [{
name: 'USD to EUR',
data: usdeur
}]
};
var chart=new Highcharts.Chart(hc_options);
}
var sint = setInterval(function(){
init_graph();
}, 4000);
我的问题是:如何销毁图表before writing a new chart into the same container
(正如官方文档中建议的那样)?
感谢
答案 0 :(得分:1)
通过评论中的讨论:
应该可以使用Highcharts.charts数组,并在此数组中找到destroy的特定图表(如果存在):
function init_graph() {
var hc_options = {
chart: {
renderTo: 'container'
},
series: [{
name: 'USD to EUR',
data: usdeur
}]
};
var chart=new Highcharts.Chart(hc_options);
}
var sint = setInterval(function(){
Highcharts.charts[0] && Highcharts.charts[0].destroy();
init_graph();
}, 4000);