请考虑下面的示例:DOM树保留在内存中,如果你点击处理元素上删除它里面的树
<!DOCTYPE html>
<html>
<head>
<title>Detached HTML</title>
<script type="text/javascript" src="js/jquery-2.0.3.js"></script>
<script type="text/javascript">
$(function() {
$(".summary").on("click", ".close", function() {
$(".summary").remove();
})
})
</script>
</head>
<body>
<div class="body">
<div class="summary">
<button class="close">Close</button>
</div>
</div>
</body>
</html>
现在,请点击关闭按钮,然后采取堆快照(我在Chrome浏览器所做的那样)。在“Detached”上过滤结果。你可以看到被删除的元素变成了Detached DOM Tree,并且因为缓存/属性声音而停留。
这是预料的,这怎么处理?
你的意思是在网络督察?它保持在元素树中? –
开发者工具 - >配置文件 - >采取堆快照。它留在内存中,而不是在元素树中。我希望并希望它被垃圾收集。 –
已阅读此文http://stackoverflow.com/questions/11042492/jquery-remove-and-memory-leaks –