Как мне решить эту ошибку управления памятью Javascript? - PullRequest
0 голосов
/ 03 октября 2011

У меня есть массив изображений, который хранится глобально.Каждую секунду я выбираю изображение на экране, затемняю его и заменяю изображением из массива.Я использую: $("#picture" + picture.id).remove(), чтобы удалить текущее изображение с экрана.Затем я использую

$(".pictureframe").prepend(

<div id="picture+picture.id" class="imageframe" style="opacity:0; left:x px; top:y px;" >
    <img class="image" width="picture.width" height="picture.height" src="picture.source" />
</div>

);

Я удалил все экранирование, чтобы было легче читать.picture - это объект, поэтому picture.id - это идентификатор изображения.Проблема в том, что открытая страница (и единственная открытая) убивает память браузера.Я получаю 1,4 ГБ использования только с этой страницей.Я предполагаю, что браузер создает клон изображения каждый раз, когда его вставляют заново.Есть ли функция удаления сборщика мусора, которую я могу вызвать на удаленных элементах DOM?Как бы я это сделал?

1 Ответ

1 голос
/ 03 октября 2011

Я бы сделал так, чтобы все изображения были там одновременно, но с одним из них, кроме одного, установленным на display: none, а затем постепенно затухали и вставляли их по мере необходимости.Таким образом, никаких реальных манипуляций с DOM, только стили и память не будут вытекать из USB-портов вашего компьютера: p

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...