【发布时间】:2011-03-01 01:49:21
【问题描述】:
那么,如果在 javascript 中,我在 HTML 页面中创建一个 DOM 对象,并将事件监听器附加到 DOM 对象,当我从 HTML 页面中删除 DOM 时,事件监听器是否仍然存在并导致内存泄漏?
function myTest() {
var obj = document.createElement('div');
obj.addEventListener('click', function() {alert('whatever'); });
var body = document.getElementById('body'); // assume there is a <div id='body'></div> already
body.appendChild(obj);
}
// then after some user actions. I call this:
function emptyPage() {
var body = document.getElementById('body');
body.innerHTML = ''; //empty it.
}
所以,body 中的 DOM 对象 <div> 消失了。但是eventlistener 呢?
我只是担心它会导致内存泄漏。
【问题讨论】:
标签: javascript dom memory-leaks event-listener