我有一个简单的 html/javascript 代码,它将创建一些 DOM,然后将它们删除。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8">
<title>Custom Plunker</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<button onclick="create()"> Create </button>
<button onclick="clearContainer()"> Clear </button>
<div id="container"></div>
</body>
</html>
<script>
function create() {
var c = $("#container");
for(var i = 0;i<10000; i++){
c.append("<li>Hellosd fssd f df sdf f f wef ewf we fwe f wef ewf wef ew few f ewf wf ewf wef </li>");
}
}
function clearContainer() {
var c = $("#container");
c.empty();
}
</script>
会有一个Create
按钮和一个Clear
按钮。当我单击创建按钮时,它会将 10000li
个元素附加到容器 div 中,当我单击清除按钮时,它将删除它们。
当我在chrome上尝试时,chrome进程的初始内存使用量大约为30M,在我点击几次创建按钮后增加到70M,当我点击清除按钮时,它变成了50M。比初始多20M。
然后我在IE8上试了一下,IE进程初始内存使用量大约30M,我只点击一次create按钮后就增长到100M以上,点击clear按钮后就变成了80M。比初始多50M。
代码有内存泄漏吗?如何解决?