try finally 妙用,防止内存泄漏

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

<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的问题
       }
}

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

标签:try,finally,内存,js
0
投稿

猜你喜欢

  • ASP无组件上载,带进度条,多文件上载

    2008-10-29 10:03:00
  • X/HTML5 v.s. XHTML2(II)

    2008-06-18 13:19:00
  • css被遮挡的绝对定位

    2008-02-29 12:00:00
  • 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法

    2011-11-03 16:49:09
  • JavaScript,5种调用函数的方法[译]

    2009-02-24 16:26:00
  • Doctype之谜

    2009-07-22 20:48:00
  • 交互设计:简单

    2011-08-27 16:46:27
  • asp采集常用的几个FUCTION

    2007-09-05 19:45:00
  • document.createElement()用法及注意事项

    2008-04-21 15:16:00
  • js插入flash可防止虚线框激活

    2009-03-13 13:31:00
  • 网页版面布局的方法及技巧

    2007-10-29 12:41:00
  • PHP Laravel门面的实现原理详解

    2023-05-25 06:42:36
  • 怎样使MySQL在攻击者面前保持安全

    2008-11-17 20:09:00
  • MySQL数据库的临时文件究竟储存在哪里

    2009-02-13 13:44:00
  • MYSQL数据库教程:唯一编号

    2009-02-27 15:27:00
  • 给JavaScript自定义一个Trim函数

    2008-04-20 16:30:00
  • SQL查询入门(中篇)

    2011-09-30 11:15:09
  • css中使用CLASS来设计网页布局

    2007-10-30 13:01:00
  • ASP.NET教程第二讲:安装ASP.NET

    2007-08-07 11:59:00
  • 将有安全问题的SQL过程删除,比较全面

    2007-08-06 14:46:00
  • asp之家 网络编程 m.aspxhome.com