Было время, когда в IE циклические ссылки с элементами DOM (которые обычно образовывались замыканиями при назначении функции слушателю) вызывали утечки памяти, например,
function foo() {
var someEl = document.getElementById('...');
someEl.onclick = function() {...};
}
Однако я думаю, что ониисправлены или исправлены настолько, что если тестирование не показывает иное, их можно игнорировать.Есть также несколько способов избежать таких замыканий, поэтому, даже если они представляют собой проблему, их можно обойти (например, не создавать циклические ссылки с элементами DOM).
Редактировать
Использование библиотек или любого другого метода присоединения слушателей может по-прежнему создавать циклические ссылки и утечки памяти, например, в IE:
function foo() {
var el = document.getElementById('d0');
// Create circular reference through closure to el
el.attachEvent('onclick', function(){bar(el);});
}
function bar(o) {
alert(o == window.event.srcElement); // true
}
window.onload = foo;
В приведенном выше примере attachEvent для добавления прослушивателя (что в значительной степени все фреймворки будут использовать для IE <9, включая jQuery), но при этом все еще создает циклическую ссылку, включающую элемент DOM, и поэтому будет течь в определенных версиях IE.Так что простое использование библиотеки <strong>не решит проблему , вам нужно понять причины и избежать их.