我读在其中要求保护的下列代码将导致内存泄漏在IE中早于版本8.为什么此代码在IE中导致内存泄漏?
function setHandler() {
var elem = document.getElementById('id')
elem.onclick = function() { /* ... */ }
}
作者还提供的修补程序,以防止内存泄漏online JavaScript tutorial:
function setHandler() {
var elem = document.getElementById('id')
elem.onclick = function() { /* ... */ }
elem=null;
}
为什么原始代码会导致内存泄漏,并且修复如何防止它?
文章解释它:*的Internet Explorer之前的版本8无法清洁循环引用之间DOM对象和JavaScript *和答案一样好:*我们分配elem = null,所以处理程序不再引用DOM元素。圆形链接被打破。* – Blender 2012-08-07 02:31:23