私は次のスクリプトを持っています(私はraphaeljsも使用しています)、円を描き、1秒待って、もう一度円を描きます(コピーして貼り付けることができます-機能的で、raphaeljs.comからのraphaelのみを含める必要があります):
<div id="holder">
</div>
<script src="raphael.js" type="text/javascript"></script>
<script>
var paper = Raphael(10, 50, 320, 200);
var rad = Math.PI / 180;
var finAngle = 0;
function sector(cx, cy, r, startAngle, endAngle, params) {
var x1 = cx + r * Math.cos(-startAngle * rad),
x2 = cx + r * Math.cos(-endAngle * rad),
y1 = cy + r * Math.sin(-startAngle * rad),
y2 = cy + r * Math.sin(-endAngle * rad);
return ["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2];
}
var path = sector(100,100,50,0,180);
var arc = paper.path(path);
function draw()
{
path = sector(100,100,50,0,finAngle);
arc.attr({"path": path});
finAngle += 1;
/*
if (finAngle == 360)
finAngle = 359;
*/
if (finAngle > 360)
{
clearInterval(interval);
setTimeout("setNewInterval();", 1000);
finAngle = 1;
}
return;
}
function setNewInterval()
{
interval = setInterval("draw();", 3);
}
var interval = setInterval("draw();", 3);
</script>
問題は、Firefoxでメモリリークが発生しているように見えることです(10分間実行すると、firfoxは700MBのRAMになります(クロムは25MBのままです))。Chromeには問題はありません。
私がそれをどのように修正するかについてのアイデアはありますか?