nvd3应用程序内存泄漏

Mar*_*rio 14 javascript memory-leaks d3.js nvd3.js

我有一个经常更新的生活线图,请参阅http://jsfiddle.net/cddw17fg/5/

function redraw() {
  if (!redraw.isGraphShown) {
    redraw.isGraphShown = true;
    ...
  } else {
    d3.select('#chart svg')
      .datum(data)
      .transition().duration(1500)
      .call(chart);

    d3.select('.nv-x.nv-axis > g').selectAll('g').selectAll('text')
      .attr('transform', function(d, i, j) {
      return 'translate (-40, 40) rotate(315)'
    });
    nv.tooltip.cleanup();
    chart.update();
  }
}
Run Code Online (Sandbox Code Playgroud)

使用"开发工具"在IE11中运行此js,"总内存"首先略有增加,但几分钟后它开始快速增长.

启动jsfiddle后,内存消耗看起来"不错"...... 启动后 但几分钟后有人饿了,吃了我的字节...... 开始吃记忆

任何人都知道我做错了什么?

Mar*_*rio 0

这似乎是 NVD3 或 D3 本身的一个错误。我现在的解决方法是每 10 分钟重新加载一次带有图表的页面。

var startDateNVD3Reload = Date.now();
...
var elapsed_time_minutes = (Date.now() - startDateNVD3Reload)/1000/60;
if (elapsed_time_minutes > 10)
{
    location.reload(true);
}
Run Code Online (Sandbox Code Playgroud)