【发布时间】:2015-11-21 20:55:16
【问题描述】:
我有 javascript 可以创建几十个 <div> 元素加载带有 background-image:url(http://differentDomain.com/someImage.jpg) 的图像
它们都附加到<div id = "container">中
在图像显示在屏幕上并完成 css 动画后,我删除容器:
var c = document.getElementById('container')
c.parentNode.removeChild(c);
删除后我得到一组新图像,创建一个新容器并再次启动该过程。
问题是 - 移除容器后,页面并没有清除内存,并继续在内存中无限膨胀 - 在图像中,经过几次迭代后内存已经膨胀。
有没有更优化的方式从 DOM 中移除? 这可以与在图像上使用 css 动画相关联吗?
【问题讨论】:
-
我真的不认为这是原因,但您是否保留对容器或其内容的任何引用,或者是否将删除的节点发送到垃圾收集?
-
@JacqueGoupil 似乎我没有对该对象的任何引用,但我发现很难确定
-
@JacqueGoupil 删除所有引用后,图像缓存仍然很低,但内存列仍然很高,并且每次迭代都会继续增长
-
嗯,那我就不知道了。对不起:/
标签: javascript google-chrome dom memory-management