相关疑难解决方法(0)

即使在删除绑定到的DOM元素之后,内存中是否存在javascript事件处理程序?

给出以下代码

<div id="app">
  <div id="foo" />
</div>

<script>
  $('#foo').bind('click', function(){});
</script>
Run Code Online (Sandbox Code Playgroud)

我计划更换#app [eg $('#app').html('...');,or innerHTML = '...';]的内容.我知道我可以使用jQuery .remove()来调用'destroy'解除事件的处理程序.事实上,有一个destroy处理程序设置为删除事件使我相信,如果不解除事件的绑定,当删除DOM元素时,处理程序仍将存在于内存中.

因此,如果DOM元素#foo不再存在,那么处理程序是否也会消失,或者它是否会在浏览器内存中丢失?

javascript jquery memory-leaks

18
推荐指数
2
解决办法
4817
查看次数

卸载网页后Javascript内存泄漏

我一直在阅读,试图弄清楚浏览器中的内存泄漏,尤其是.IE浏览器.我知道泄漏是由Javascript引擎和DOM对象树之间的垃圾收集算法不匹配引起的,并且会持续存在.我不明白的是为什么(根据我正在阅读的文章中的一些陈述)在浏览器卸载页面后不回收内存.导航离开网页应该将所有DOM和javascript对象放在范围之外,不应该吗?

javascript memory internet-explorer dom memory-leaks

8
推荐指数
1
解决办法
4002
查看次数

我应该在removeChild之前从元素中删除事件处理程序吗?

说,我有一个元素<img id="foo" />并附加了一些事件,例如click(不是内联onclick!).

// somewhere i wrote
foo.addEventListener("click", clickHandler, false);
...
// somewhere i will write
foo.parentNode.removeChild(foo);
Run Code Online (Sandbox Code Playgroud)

我是否还需要删除所有活动?

javascript events dom

8
推荐指数
2
解决办法
2399
查看次数