作者wctang (wctang)
看板Ajax
标题Re: [js]memory leak
时间Thu Aug 16 00:49:46 2007
※ 引述《TonyQ (骨头)》之铭言:
: 话说最近在处理图片轮播的问题
: 用到了预先载入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;
: }
: 我估计是黄字 new出function ,但是没有被正确释放.
: (虽然我把img设null ,但是还是不会释放img成员...记忆体还是狂吃)
: 提出来供借镜罗 QQ
这里的 event handler 都是用 closure 的方式来定义的,
也就是说每产生一个 img 就连带产生三个 function 物件,其实这是不必要的
把这些 event handler 定成共同的 function 应该会减少所需的 memory.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.127.126.95
1F:→ TonyQ:明天到了再来测测看XD 成员指派後最好还是找时间set null~ 08/16 02:23