gpt4 book ai didi

javascript - 使用带有悬停的 raphael.js 内存泄漏

转载 作者:行者123 更新时间:2023-11-29 15:45:51 29 4
gpt4 key购买 nike

使用具有悬停属性的 Raphael 库饼图时会发生严重的内存泄漏。如果我删除包含 hover 属性的代码,它会很好用,当我将它添加回内存占用量时,内存占用量会稳步增长,并且将鼠标悬停在饼图上会增加内存占用量。与大多数其他示例不同,我使用 window.setInterval 来不断更新页面(如果这有帮助的话)。我不知道如何解决这个问题并寻求帮助。

下面是我正在做的事情的基础知识...几乎使用 Raphael 网站上的动态饼图并向其添加间隔计时器。但是,我无法弄清楚如何在没有内存问题的情况下利用悬停效果???:

 window.onload = setInterval(drawThePie, 10000);
function drawThePie() {
var mainCont = parent.frames["main"].document;
mainCont.getElementById("holder").innerHTML = "Getting data..";

//..Setting values for pieChart and legend into arrays here

//..Looping through color array and setting values for colorlist below

var r = Raphael("holder");
var aCircle = r.aCircle(85,85,78).attr({fill: "black"});

pie = r.piechart(85,85,75,data, {"legend": legend, "legendpos": "east", colors: colorlist });
if(dataNotZero > 0) { mainCont.getElementById("holder").innerHTML = "";}

pie.hover(function () {
this.sector.stop();
this.sector.scale(1.1, 1.1, this.cx, this.cy);

if (this.label) {
this.label[0].stop();
this.label[0].attr({ r: 7.5 });
this.label[1].attr({ "font-weight": 800 });
}
}, function () {
this.sector.animate({ transform: 's1 1 ' + this.cx + ' ' + this.cy }, 500, "bounce");

if (this.label) {
this.label[0].animate({ r: 5 }, 500, "bounce");
this.label[1].attr({ "font-weight": 400 });
}
});
};

最佳答案

它看不到你所有的代码。所以我只能猜...

也许这部分被磨损了

this.sector.scale  

这部分代码可能有一些值(value),有一些 DOM 引用。当函数结束时,该值仍未释放 DOM 引用。

关于javascript - 使用带有悬停的 raphael.js 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11399177/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com