日期:2014-05-16  浏览次数:20437 次

JavaScript内存的释放和监测
<script   language= "javascript "   type= "text/javascript ">
function   test01(id)
{
        this.id   =   id;
}
test01.prototype   =  
{
        getId   :   function()
        {
                return   this.id;
        }
}
var   t   =   new   test01(00);
alert(t.getId());
t   =   null;
delete   t;
</script>

1、上面的代码中,在没有创建t这个对象实例前,test01是否会占用内存,创建实例并使用完成后,如果释放?是t   =   null;还是delete   t;?
2、能不能使用某条语句或某个软件,监测当前页面的内存变化情况,任务管理器提供的信息不方便查看。
3、本程序中,this是指什么?是指整个页面中的id变量还是test01中的id属性?

------解决方案--------------------
1.一般用t=null,浏览器有自动回收内存的东西
2.havanoidea
3.this指这个函数test01,同时它也是一个对象Function的实例
------解决方案--------------------
IE下 内存仍然被占用

你可以这样
for(var o in t)delete t[o];
t = null;

下一次再用到t变量时或刷新页面时内存会重新分配
当然显示使用CollectGarbage()也可以消除内存


------解决方案--------------------
学习!
------解决方案--------------------
学习
------解决方案--------------------
mark
------解决方案--------------------
最担心就是退出页面后内存还占着。js的内存是最难搞的了。
------解决方案--------------------
mark
------解决方案--------------------
2、能不能使用某条语句或某个软件,监测当前页面的内存变化情况,任务管理器提供的信息不方便查看。 
===========================
用firebug 中的调试可以。 它主要用在firefox下,但也有 IE的版本
------解决方案--------------------
可以搜索一下 浏览器内存泄漏检测

有相应工具的...