小编Kla*_*aas的帖子

重复应用d3转换导致内存泄漏

我有一个SVG地图和一个轮询数据变化的间隔,并相应地更新地图上的颜色.除非我使用过渡淡入新颜色,否则一切正常.然后标签慢慢占用越来越多的内存,直到它崩溃.

我做了一个显示相同行为的简化示例:

var size = 500;
var num = 25;
var boxSize = size / num;

function color(d) {
    return '#' + Math.random().toString(16).slice(2,8);
}

var svg = d3.select('body')
    .append("svg")
    .attr("width", size)
    .attr("height", size);

var squares = svg.selectAll(".square")
    .data(d3.range(num * num))
  .enter().append("rect")
    .attr("class", "square")
    .attr("width", boxSize)
    .attr("height", boxSize)
    .attr("x", function (d) { return boxSize * (d % num);})
    .attr("y", function (d) { return boxSize * Math.floor(d / num); })
    .style("fill", color);

function shuffleColors() {
    squares.interrupt().transition().duration(500).style("fill", color);
    timer = setTimeout(shuffleColors, 1000);
} …
Run Code Online (Sandbox Code Playgroud)

javascript memory-leaks d3.js

10
推荐指数
1
解决办法
1452
查看次数

标签 统计

d3.js ×1

javascript ×1

memory-leaks ×1