try finally 妙用,防止内存泄漏

    技术2024-12-12  14

    <div id="d1"></div> <script > function createButton(){          var obj = document.createElement("button");           obj.innerHTML="点我!";           obj.οnclick=function(){                       //处理click事件             }           obj.οnmοuseοver=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.οnclick=function(){                       //处理click事件             }           obj.οnmοuseοver=function(){                    //处理mouseover事件          }         try{             return obj;         }finally{               obj = null;//这句话在return 之后才执行 , 的效的解决了需在return后将obj置null的问题        } } 一个函数或方法中,其实有很多地方都需要这种选返回值,最后执行某些事的

     

    转自:http://bbs.51js.com/thread-76615-1-1.html

    最新回复(0)