Mic*_*kov 23 javascript memory-leaks
你知道什么可能导致JavaScript中的内存泄漏吗?我对浏览器感兴趣:IE 7,FireFox 3,Safari 3
jk.*_*jk. 33
有一篇关于JavaScript和内存泄漏的好文章.它没有具体涉及浏览器,而是描述了内存泄漏和JavaScript的整个问题.
我认为这是一种更好的方法,可以在为公众开发网站时尽可能地针对少数浏览器进行优化.
Ant*_*nes 22
以下是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
}
}
Run Code Online (Sandbox Code Playgroud)
在运行此代码之后,存在循环引用,因为元素具有指定其onclick事件的函数,该事件引用范围对象,该范围对象又保持对元素的引用.
someElement-> onclick->功能scope-> elem-> someElement
在IE中,DOM元素是基于COM的引用计数对象,Javascript GC无法清除.
在上面的代码中添加最后一行将清理它: -
var elem = null;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8450 次 |
最近记录: |