HighCharts-在写入新图表之前销毁(以防止内存泄漏)

HighCharts-在写入新图表之前销毁(以防止内存泄漏),highcharts,Highcharts,从 销毁-删除图表并清除内存。在将新图表写入同一容器之前,应调用此方法。它在窗口卸载时内部调用,以防止泄漏 下面是我如何在单击按钮时调用destroy var hc_选项={ 图表:{ renderTo:“容器” }, 系列:[{ 名称:“美元兑欧元”, 数据:美元/欧元 }] }; var图表=新的Highcharts.Charthc\u选项; $“按钮”。单击功能{ 破坏; $this.attr'disabled',true; }; 在我的项目中,我使用更新的数据在setInterval中多

销毁-删除图表并清除内存。在将新图表写入同一容器之前,应调用此方法。它在窗口卸载时内部调用,以防止泄漏

下面是我如何在单击按钮时调用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.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可能适用于您的情况: