我讀在其中要求保護的下列代碼將導致內存泄漏在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