0
從http://api.highcharts.com/highstock/Chart.destroyHighCharts - 寫一個新的圖表之前破壞(防止內存泄漏)
破壞() - 刪除圖表並清除存儲器。在將新圖表寫入同一個容器之前,應調用此方法。它在窗口卸載時被內部調用以防止泄漏。
這是我如何調用銷燬按鈕點擊
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
(因爲它的官方文檔中所建議的)? 由於
所以你想實現類似於這個jsFiddle的東西? http://jsfiddle.net/dpbd0ff9/3/ 我認爲在你的情況下,更好的想法可能是使用chart.update()而不是每當你加載一個新的圖表時破壞圖表:http:// api .highcharts.com/highcharts/Chart.update –
@GrzegorzBlachliński謝謝!我需要摧毀因爲內存泄漏,我有多次更新圖形後。我做了一些更新。實際上,我正在初始化funcion init_graph()中的圖表,並在setInterval中調用init_graph()。這裏是鏈接http://jsfiddle.net/ihtus/teg540zh/在這種情況下銷燬的最好方法是什麼? – ihtus
嗨Ihtus。我不確定你是否需要chart.destroy。正如你在Highcharts代碼中讀到的那樣:「如果容器已經擁有一個圖表,請將其摧毀」 - Highcharts應該在內部銷燬圖表 –