网络编程
位置:首页>> 网络编程>> JavaScript>> try finally 妙用,防止内存泄漏

try finally 妙用,防止内存泄漏

作者:chpn 来源:无忧脚本 发布时间:2008-03-26 12:52:00 

标签:try,finally,内存,js
<div id="d1"></div>
<script >
function createButton(){
         var obj = document.createElement("button");
          obj.innerHTML="点我!";
          obj.onclick=function(){
                      //处理click事件
            }
          obj.onmouseover=function(){
                   //处理mouseover事件
         }
        return obj;//这里由于需要返回创建的对象,所以不能把obj直接设为null. return 后obj是局部变量,不能在外部断开其与HTMLElement的引用.ie中将出现问题泄漏问题
}
var 按钮 = document.getElementsById("d1").appendChild( createButton());
按钮.做某些事();
按钮.做某些事();
........
某些东西.某些事(按钮);
......
</script>

这种写法在IE中100%内存泄漏

使用try finally很容易解决些问题

 

function createButton(){
         var obj = document.createElement("button");
          obj.innerHTML="点我!";
          obj.onclick=function(){
                      //处理click事件
            }
          obj.onmouseover=function(){
                   //处理mouseover事件
         }
        try{
            return obj;
        }finally{
              obj = null;//这句话在return 之后才执行 , 的效的解决了需在return后将obj置null的问题
       }
}

一个函数或方法中,其实有很多地方都需要这种选返回值,最后执行某些事的

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com