如果我使用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. 內存泄漏問題