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