作者TonyQ (骨头)
看板Ajax
标题[js]memory leak
时间Wed Aug 15 17:48:43 2007
话说最近在处理图片轮播的问题
用到了预先载入image
又碰到了之前在玩 urMap api的 memoryleak问题
提出来做参考
我结论一小段 code 把重要的地方标红字起来
─────────────────────
function ming(i)
{
//在这里作图片的new
var img = new Image();
img["nIndex"]=i;
img.onload = function(){ imageLoaded(this,i); };
img.onerror = function(){ imageError(this,i); };
img.onabort = function(){ imageError(this,i); };
img.src = "pic.php?no="+i;
}
function imageError(img,i)
{
img.onload=null;
img.onerror=null;
img.onabort = null;
img=null;
if(refresh) setTimeout("ming("+i+")",delay);
}
function imageLoaded(img,i)
{
//确定图片完成後再载入
_e("img"+img["nIndex"]).src=img.src;
//Find the image control object
img.onload=null;
img.onerror=null;
img.onabort = null;
img=null;
if(refresh) setTimeout("ming("+i+")",delay);
}
───────────────────────
我图片蛮小的 不过refresh速度 大概是 7张/s orz
300mb跑不到二十秒 就爆了...XD
不过把蓝字的部分补上去就OK了
我估计是黄字 new出function ,但是没有被正确释放.
(虽然我把img设null ,但是还是不会释放img成员...记忆体还是狂吃)
提出来供借镜罗 QQ
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 语 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼
*◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂
~telnet://tony1223.no-ip.info
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.124.15.165