Показать сообщение отдельно
  #1 (permalink)  
Старый 05.11.2009, 20:43
Аспирант
Отправить личное сообщение для Yazla Посмотреть профиль Найти все сообщения от Yazla
 
Регистрация: 01.11.2009
Сообщений: 31

Как происходит утечка памяти в даном случае?
http://webo.in/articles/habrahabr/18...-memory-leaks/ отличная статья по утечкам памяти, но одного примера я немогу понять "Постраничные утечки".
Цытата:
"Базовый шаблон заключается во временном соединении двух только что созданных элементов вместе, что создает область видимости, в которой определен дочерний элемент. Затем, при включении этого двух-элементного дерева в основное, они оба наследуют контекст всего документа, и происходит утечка во временном объекте (чей контекст мы не закрыли)."

Пример из статьи:
function LeakMemory()
	{
	    var hostElement = document.getElementById("hostElement");

	    // Давайте посмотрим, что происходит с памятью в Диспетчере Задач

            for(i = 0; i < 5000; i++)
	    {
		var parentDiv =
		    document.createElement("<div onClick='foo()'>");
		var childDiv =
		    document.createElement("<div onClick='foo()'>");

                // Здесь вызывается утечка на временном объекте
		parentDiv.appendChild(childDiv);
		hostElement.appendChild(parentDiv);
		hostElement.removeChild(parentDiv);
		parentDiv.removeChild(childDiv);
		parentDiv = null;
		childDiv = null;
            }
	    hostElement = null;
	}


Может ктото объяснить пожагово, как происходит это утчека?

Заранее благодарен.
Ответить с цитированием