内存泄漏与jquery remove()?

时间:2012-01-12 12:04:37

标签: jquery memory-leaks

  

可能重复:
  jQuery memory leak with DOM removal

我创建了一个简单的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,内存也会保留。

我测试不正确吗?我几乎觉得我应该隐藏所有元素而不是删除它们......

1 个答案:

答案 0 :(得分:0)

认为这可能会有所帮助,所以发布了它。 方法remove()empty()html()检查数据的后代元素并清除它们。这是开销,但至少可以回收内存。尝试使用removeData(),然后detach()。希望它能以某种方式提供帮助。