Вызывает ли deleteCell ложную утечку? - PullRequest
1 голос
/ 26 марта 2012

Согласно этот веб-сайт вызывает removeChild () в JavaScript вызывает специфическую утечку Internet Explorer, называемую псевдо-утечкой.

Иногда Internet Explorer сохраняет элементы в памяти после того, как страница выполнена с их использованием. Хотя эти псевдо-утечки освобождаются после того, как пользователь покидает страницу, некоторые веб-страницы могут быть открыты в течение длительных периодов времени. Чтобы избежать псевдо-утечек, не используйте removeChild для удаления элементов. Вместо этого установите значение innerHTML для родителя в ""

Является ли deleteCell () причиной псевдо-утечек так же, как и removeChild ()?

Редактировать: мне удалось воспроизвести эту ошибку на IE8. Верите или нет, но Microsoft утверждает, что исправила эту проблему в IE7.

1 Ответ

2 голосов
/ 26 марта 2012

У меня нет возможности просматривать исходный код IE и подтверждать его, но я представляю, что если Chrome реализует deleteCell, он внутренне использует removeChild, что может вызвать псевдо-утечку в IE. Я знаю, что более ранние версии IE имели эту проблему, но я не уверен, что текущие версии имеют.

Из источника хрома:

void HTMLTableRowElement::deleteCell(int index, ExceptionCode& ec)
{
        ...
        HTMLElement::removeChild(cell.get(), ec);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...