是否可以removeChild并从内存中删除它的内容?

是否可以removeChild并从内存中删除它的内容?

问题描述:

我目前正在动态添加图片到div,因为我正在可视化数据。因此,我每3秒就会移除一次图像。我目前正在调用removeChild,但它不会从内存中删除它的内容。有没有办法清除一些内存?是否可以removeChild并从内存中删除它的内容?

下面是一些示例代码:https://jsfiddle.net/eybb9rxc/2/

var rightImages = document.getElementById('rightImages'); 

setInterval(function() { 
    rightImages.removeChild(rightImages.childNodes[0]); 
}, 3000); 

此外,childNode还具有在它的元件。我需要循环并调用其中的每个元素removeChild?或者一次调用就足够了?

+0

这在[documentation](https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild)中有所解释,它指出没有任何引用的节点被删除'removeChild'应该在短时间内被GC删除。 – adeneo

只要没有其他对该对象的有效引用,将该元素设置为null就会为垃圾回收器启用它。

+0

我这么认为。不知道是否有其他方式比垃圾收集器。谢谢! – Jimmy

根据this任何被删除的项目没有剩余的引用将被垃圾收集器删除。我认为设置它null就足够了。请检查“引用计数垃圾回收”部分。