在JavaScript中删除DOM节点以节省内存

时间:2011-02-22 11:53:52

标签: javascript dom memory

我正在使用Safari浏览器查看富含Javascript的网页。我看到Safari在查看网页和进行各种操作时占用了大量内存(500-900 MB)。我想知道删除创建的DOM对象是否需要删除var elem = document.getElementById('Id1');以优化此内存利用率?如果有任何其他指示,请建议。另外,我们如何以最简单的方式删除这个DOM对象?

由于 亚洲时报Siddharth

3 个答案:

答案 0 :(得分:1)

澄清一点。您的示例代码不创建 DOM节点;它只检索对现有节点的引用

var elem = document.getElementById('Id1');

一旦您有权访问该元素,就可以将其删除:

elem.parentNode.removeChild(elem);

答案 1 :(得分:1)

删除DOM节点可能没用如果您正在创建内存泄漏(可能无法从内存中清除它们)。

如果连接DOM节点并且可能会发生这种情况。代码中的javascript对象(DOM和JS垃圾收集器不会清除循环引用)。

如果你想摆脱这个问题:

答案 2 :(得分:0)

webkit检查器有一个用于此类事情的探查器实用程序。我不确定它是否存在于Safari版本中,但它绝对是Chrome版本。

请参阅this question/answer

Here是使用Safari Inspector实用程序的好教程。