如果我使用addEventListener在一个元素上注册一个事件,然后删除该元素而不删除该事件,我反复这样做可以创建内存泄漏?javascript addEventListener内存泄漏问题
7
A
回答
4
它不应该泄漏。当一个事件处理程序导致一个主机对象时,这个臭名昭着的浏览器就像地狱一样泄漏。> JS对象循环是IE(最高版本7),IE(最高版本8)不支持addEventListener
。
如果您想在特定浏览器中测试浏览器的内存使用情况,请长期观察浏览器的内存使用情况。
<div id="x"></div>
<script type="text/javascript">
function replace() {
var x= document.getElementById('x');
if (x.firstChild!==null)
x.removeChild(x.firstChild);
var el= document.createElement('p');
el.addEventListener('click', click, false);
x.appendChild(el);
}
function click() {
alert('click');
};
setInterval(replace, 1);
</script>
(要与参考环路出现测试,移动function click
定义成在replace
体。)
0
如果从DOM,已连接监听器元素删除您将得到内存泄漏。 但是这只发生在IE中,Fx和其他人都有先进的GC。
通常它发生,如果你有没有通过DOM DOM元素操纵,但像
el.innerHTML = ...
例如,YUI定制实现setInnerHTML,以防止内存泄漏在这种情况下。
相关问题
- 1. JavaScript内存泄漏问题
- 2. Javascript内存泄漏/性能问题?
- 3. Javascript内存泄漏setTimeout问题
- 4. IXMLDOMDocument内存泄漏问题
- 5. C++内存泄漏问题
- 6. 内存泄漏问题
- 7. 内存泄漏问题
- 8. NSDateFormatter内存泄漏问题
- 9. 内存泄漏问题
- 10. 内存泄漏问题
- 11. 内存泄漏/ GLib问题
- 12. 内存泄漏问题
- 13. iPhone内存泄漏问题
- 14. 内存泄漏问题
- 15. .net内存泄漏问题
- 16. NSDate内存泄漏问题
- 17. C内存泄漏问题
- 18. iPhone内存泄漏问题
- 19. LuaInterface内存泄漏问题
- 20. 内存泄漏问题.net
- 21. C内存泄漏问题
- 22. 内存泄漏问题
- 23. 内存泄漏问题
- 24. OpenCV内存泄漏问题
- 25. NSKeyedUnarchiver内存泄漏问题
- 26. 内存泄漏问题
- 27. iPhone内存泄漏问题?
- 28. WMI内存泄漏问题
- 29. GStreamer内存泄漏问题
- 30. 内存泄漏问题