Все версии IE (включая 10), по-видимому, хранятся в значительном объеме памяти, выделенной iframes, до тех пор, пока не произойдет window.top.unload. Это создает довольно сложную задачу для долговечных страниц, которые могут создавать несколько фреймов на протяжении всей их жизни. Упрощенный пример проблемы можно найти здесь:
В этом примере используется страница Wikipedia для iframe, чтобы увеличить проблему, но даже простая страница с одним изображением будет протекать.
В двух словах, после уничтожения iframe в IE вы получаете некоторую, но не всю память обратно, в следующий раз, когда страница запускает сборку мусора (обычно около 25% памяти, используемой iframe, застревает в неопределенности), Обновление или переход на новую страницу (window.top.unload) освободят большую часть или всю оставшуюся память.
Эта конкретная утечка не обнаруживается в таких инструментах, как sIEve и Microsoft JS Детектор утечки памяти. Я прочитал все, что я могу найти о просачивающихся iframes в IE, но не повезло с решениями, с которыми я столкнулся.
Кто-нибудь знает решение или обходное решение этой проблемы? Единственная стратегия смягчения, которую я имею, заключается в том, чтобы сделать как можно большую очистку в пределах iframe до того, как родительская страница уничтожит ее, но это не помогает, когда вы не контролируете обрамленную страницу.