1

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

当用户导航到新页面时,它们将在一个带有“溢出:隐藏;”的小窗口中一个接一个地添加到 DOM 中:

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

当 AJAX 调用返回成功时,将在 #bar 中附加一个 div。

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

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

谢谢

威廉

4

2 回答 2

2

无论人们说 GC 会为您做什么,无论是在 JavaScript、C# 还是 Java 中,请当心并忘记自动管理的愚蠢承诺。明确地清理它并睡个好觉。

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

于 2009-03-14T16:05:44.417 回答
0

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

于 2009-03-14T15:46:37.850 回答