DOM内存泄漏的解决方案

时间:2018-08-14 07:11:24

标签: javascript memory-management memory-leaks google-chrome-devtools memory-footprint

我有一些<div>元素,它们的内容需要按以下每个时间间隔重新加载-

<div id="some_id"></div>

...

<script>
setInterval(function() {
   // Reset the contents of wrapper div element// 
   wrapper = document.getElementById('some_id');
   // Creating a video-element//
   wrapper.innerHtml = ''
   v2 = document.createElement('video');
   v2.src = 'http://clips.vorwaerts-gmbh.de/VfE_html5.mp4';
   v2.setAttribute('preload', 'metadata');

   wrapper.appendChild(v2);

   // Allowing both wrapper & v2 to be eligible for garbage-collection//
   wrapper = null;
   v2 = null;
}, 5000);
</script>

Chrome浏览器中的内存占用逐渐增加,对于已删除/分离的元素看不到垃圾收集的迹象。内存占用量稳定在相同的值,即使我调用clearInterval()也不会减少。删除div元素中的内容以避免内存泄漏的更实用的方法是什么?

以下是输出和内存占用的屏幕截图(Chrome菜单->更多工具->任务管理器)。

Screenshots

编辑1: 我尝试通过以下方法清空包装器:

while(wrapper.firstChild){wrapper.removeChild(wrapper.firstChild)}

结果相同

1 个答案:

答案 0 :(得分:0)

我相信您的代码中有错字。而不是wrapper.innerHtml =''它应该是innerHTML。我在chrome中运行了5分钟的代码,并且堆快照恒定为4.9 MB。因此,没有内存泄漏。 enter image description here

相关问题