当前位置:  开发笔记 > 编程语言 > 正文

你知道什么可能导致JavaScript中的内存泄漏吗?

如何解决《你知道什么可能导致JavaScript中的内存泄漏吗?》经验,为你挑选了2个好方法。

你知道什么可能导致JavaScript中的内存泄漏吗?我对浏览器感兴趣:IE 7,FireFox 3,Safari 3



1> jk...:

有一篇关于JavaScript和内存泄漏的好文章.它没有具体涉及浏览器,而是描述了内存泄漏和JavaScript的整个问题.

JavaScript和内存泄漏

介绍关闭

更多泄漏模式

结论

我认为这是一种更好的方法,可以在为公众开发网站时尽可能地针对少数浏览器进行优化.



2> AnthonyWJone..:

以下是IE中的经典内存泄漏: -

function body_onload()
{
    var elem = document.getElementById('someElementId');
    // do stuff with elem
    elem.onclick = function() {
        //Some code that doesn't need the elem variable
    }
 }

在运行此代码之后,存在循环引用,因为元素具有指定其onclick事件的函数,该事件引用范围对象,该范围对象又保持对元素的引用.

someElement-> onclick->功能scope-> elem-> someElement

在IE中,DOM元素是基于COM的引用计数对象,Javascript GC无法清除.

在上面的代码中添加最后一行将清理它: -

var elem = null;

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有