Управление памятью и процессором DOM - PullRequest
1 голос
/ 14 марта 2009

Я создаю прогрессивно построенный одностраничный (если Javascript включен) "блог", который использует 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 ширины скрыто много страниц?

Нужно ли удалять div из DOM, когда пользователь уходит от них? Затем мне нужно будет сделать новый AJAX-запрос, если пользователь решит перейти к ним снова. (

Спасибо

Willem

Ответы [ 2 ]

2 голосов
/ 14 марта 2009

Независимо от того, что люди говорят, что GC сделает для вас, будь то JavaScript, C # или Java, остерегайтесь и забудьте о глупом обещании автоматического управления. Убери это явно и спи спокойно.

Очень простая причина: утечка и утечка замыканий происходят очень плохо в тот момент, когда вы выходите из большинства упрощенных сценариев (как для JavaScript браузера, так и для C # / Java).

0 голосов
/ 14 марта 2009

Современные механизмы компоновки браузера, как правило, достаточно умны, чтобы не обрабатывать скрытые элементы, поэтому это не потребует много ресурсов процессора. Однако добавление большого количества узлов с очень сложными объектными графами может быть дорогим в некоторых браузерах, поэтому я буду осторожен с этим. Также обратите внимание, что даже если они не выложены, они все еще присутствуют как часть DOM, и использование памяти может стать проблемой, если эти узлы большие.

...