HighCharts-在写入新图表之前销毁(以防止内存泄漏)
从 销毁-删除图表并清除内存。在将新图表写入同一容器之前,应调用此方法。它在窗口卸载时内部调用,以防止泄漏 下面是我如何在单击按钮时调用destroy var hc_选项={ 图表:{ renderTo:“容器” }, 系列:[{ 名称:“美元兑欧元”, 数据:美元/欧元 }] }; var图表=新的Highcharts.Charthc\u选项; $“按钮”。单击功能{ 破坏; $this.attr'disabled',true; }; 在我的项目中,我使用更新的数据在setInterval中多次重新绘制图表 下面是setInterval的代码 函数初始化图{ var hc_选项={ 图表:{ renderTo:“容器” }, 系列:[{ 名称:“美元兑欧元”, 数据:美元/欧元 }] }; var图表=新的Highcharts.Charthc\u选项; } var sint=setIntervalfunction{ 初始图; }, 4000; 我的问题是:在将新图表写入官方文档中建议的同一容器之前,如何销毁该图表?HighCharts-在写入新图表之前销毁(以防止内存泄漏),highcharts,Highcharts,从 销毁-删除图表并清除内存。在将新图表写入同一容器之前,应调用此方法。它在窗口卸载时内部调用,以防止泄漏 下面是我如何在单击按钮时调用destroy var hc_选项={ 图表:{ renderTo:“容器” }, 系列:[{ 名称:“美元兑欧元”, 数据:美元/欧元 }] }; var图表=新的Highcharts.Charthc\u选项; $“按钮”。单击功能{ 破坏; $this.attr'disabled',true; }; 在我的项目中,我使用更新的数据在setInterval中多
感谢评论中的讨论: 应该可以使用Highcharts.charts数组,并在此数组中查找特定的图表(如果存在),以便销毁:
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);
示例:那么您希望实现类似于此JSFIDLE的功能?我认为在您的情况下,最好使用chart.update,而不是在每次加载新图表时都销毁图表:@grzegorzblachlinski谢谢!我需要销毁,因为在多次更新图形后内存泄漏。我做了一点更新。实际上,我正在初始化函数init_图中的图表,并在setInterval中调用init_图。这是链接,在这种情况下,最好的销毁方法是什么?嗨,伊赫图斯。我不确定你是否需要查特。在你的情况下是否需要销毁。当您读入Highcharts代码时:如果容器已经保存了一个图表,请销毁它-Highcharts应该在您的容器中内部销毁该图表case@GrzegorzBlachli我认为它没有被摧毁。。因为我有超过2Gb的内存泄漏。。。正在寻找一种在每次图形刷新之前手动销毁它的方法。因此,此JSFIDLE可能适用于您的情况: