DOM内存和CPU管理

时间:2009-03-14 15:29:04

标签: javascript dom elements

我正在创建一个逐步构建的单页(如果启用了Javascript)“blog”,它使用AJAX为用户导航到的新页面请求HTML。

当用户导航到新页面时,他们将在一个小窗口中一个接一个地添加到DOM中,其中包含“overflow:hidden;”:

<div id="foo" style="width:200px; height:100px;">
  <div id="bar" style="width:999999px">
  </div>
</div>

当AJAX调用返回成功时,div将被附加到#bar。

当#foo宽度以外有很多隐藏页面时,它会如何影响浏览器?

当用户离开时,我是否需要从DOM中删除div?然后,如果用户选择再次导航,我将需要创建一个新的AJAX请求。 :(

由于

威廉

2 个答案:

答案 0 :(得分:2)

无论人们说GC会为你做什么,无论是用JavaScript还是用C#还是Java,都要注意并忘记自动管理的愚蠢承诺。明确地清理它并且睡得好。

非常简单的原因:当你离开最简单的场景时(无论是浏览器的JavaScript还是C#/ java),闭包泄漏和泄漏都非常糟糕。

答案 1 :(得分:0)

现代浏览器布局引擎通常足够智能,无法处理隐藏的元素,因此不会消耗太多CPU能力。但是,在某些浏览器中添加大量具有高度复杂对象图的节点可能会很昂贵,所以我要小心这一点。还要注意,即使它们没有布局,它们仍然作为DOM的一部分存在,如果这些节点很大,内存使用可能会成为一个问题。