我的JavaSript代码构建了一个LI元素列表.当我更新列表时,内存使用量会增长,永远不会下降.我在筛测试,则说明该浏览器会被认为是通过删除所有的元素$.remove()或$.emptyjQuery的命令.
如何在没有内存泄漏的情况下删除DOM节点?
有关具体代码,请参阅我的其他问题.
我正在尝试使用DOM元素(添加/删除它们)显示动态可变数据操作.我发现了几乎所有浏览器的一个非常奇怪的行为:在我删除一个DOM元素然后添加一个新元素后,浏览器不会释放被删除的DOM项所占用的内存.请参阅下面的代码以了解我的意思.运行此页面后,它将逐步进入150 MB的内存.有谁能解释我这种奇怪的行为?或者也许我做错了什么?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function redrawThings() {
// Removing all the children from the container
var cont = document.getElementById("container");
while ( cont.childNodes.length >= 1 ) {
cont.removeChild(cont.firstChild);
}
// adding 1000 new children to the container
for (var i = 0; i < 1000; i++) {
var newDiv = document.createElement('div');
newDiv.innerHTML = "Preved medved " + i;
cont.appendChild(newDiv);
}
}
</script>
<style type="text/css">
#container {
border: 1px solid blue;
}
</style> …Run Code Online (Sandbox Code Playgroud)