我创建了一个简单的javascript代码段来测试内存泄漏。
function createDom(howmany)
{
var i;
var el;
var body = $("body");
for(i=0;i<howmany;i++)
{
el = $("<div></div>");
el.text(i);
el.addClass('element');
body.append(el);
}
}
$(document).ready(function(){
createDom(10000)
});
当我在Chrome中打开文件时,它使用大约20mb。当我移动到新网址(大约:空白)时,Chrome会清除内存。
问题在于,当我执行 $(&#34; .element&#34;)时,Chrome会占用更多内存.remove()。更大的问题是,即使我更改了URL,内存也会保留。
我测试不正确吗?我几乎觉得我应该隐藏所有元素而不是删除它们......
答案 0 :(得分:0)
认为这可能会有所帮助,所以发布了它。 方法remove(),empty()和html()检查数据的后代元素并清除它们。这是开销,但至少可以回收内存。尝试使用removeData(),然后detach()。希望它能以某种方式提供帮助。