0
我試圖在畫布上繪製一些漸變線,使用jCanvas插件和jQuery,但是我的代碼導致Firefox中的內存泄漏(保留的RAM增加到無窮大)。 Internet Explorer處理內存使用情況相當不錯,但整個事情非常緩慢。只有谷歌瀏覽器顯示我的畫布沒有滯後。 你能告訴我我做錯了什麼?的代碼JavaScript:畫布上的內存泄漏(不在Chrome中)
零件:
聲明:
var i, i1, i2, p; var r=[], g=[], b=[], a=[]; var gradient=[]; var w=$("body").width(); var w2=Math.floor(w/2), w3=w2-1; var h=$("body").height();
附圖中:
function draw() { $('#bg').clearCanvas(); for (i=0; i<w2; i++) { $('#bg').drawLine({ strokeStyle: gradient[i], strokeWidth: 2, x1: i*2, y1: 0, x2: i*2, y2: 700, }); } }
重新計算的線顏色值
function mixer() { for (i=0; i<w2; i++) { p = Math.random(); if (p<0.997) { i1 = (i>1)?i-1:w3; i2 = (i<w3)?i+1:0; r[i] = Math.floor((r[i1] + r[i2])/2); g[i] = Math.floor((g[i1] + g[i2])/2); b[i] = Math.floor((b[i1] + b[i2])/2); } else { r[i] = Math.floor(Math.random()*180); g[i] = Math.floor(Math.random()*180); b[i] = Math.floor(Math.random()*180); } delete gradient[i]; gradient[i] = $("#bg").createGradient({ x1: 0, y1: 0, x2: 1, y2: 699, c1: '#000', c2: "rgb("+r[i]+","+g[i]+","+b[i]+")", c3: '#000' }); } draw(); } window.setInterval(mixer, 60);
我要說的,而不是使用間隔,使用的被召回戰平後 –