Из того, что я вспоминаю не слишком удаленного прошлого, интерпретаторы JavaScript, перенесенные, из памяти пропуская проблемы, когда сталкивающийся с циклическими ссылками.
Это все еще имеет место в последних браузерах? (например, Chrome, FF 3.5 и т.д.)
Подавляющее большинство утечек, о которых мы говорим с JavaScript, происходит именно в IE6-7, когда вы делаете цикл ссылок между объектами JavaScript и хост-объектами, такими как DOM узлы.
В IE6 это особенно вредно в том, что вы не получаете обратно память, когда покидаете страницу; она исчезает, пока вы не выйдете из браузера. В IE7 очистка страницы теперь возвращает память, но вы все еще можете испытывать трудности, когда у вас есть долго работающее приложение. IE8 решает большую часть этой проблемы правильно, превращая DOM-узлы в "родные" JavaScript-объекты, а не в хост-объекты. (Вы все еще можете вызвать утечки в IE8, включив в цикл ссылок другие неродные объекты, такие как ActiveX)
Для всех браузеров, особенно в старых версиях, все еще будут небольшие непонятные утечки памяти, скрывающиеся в случайных местах. Но нет ни одного способа легко классифицировать и избежать их, как в случае с IE refloop
.Относительно Internet Explorer 8 - говорят, что исправили его в MS IE8: http://msdn.microsoft.com/en-us/library/dd361842(VS.85).aspx
Похожий поток здесь на StackOverflow: Знаете ли вы, что может привести к утечке памяти в JavaScript?