Все:
Когда я пытаюсь следовать руководству по утечке памяти в JS DOM, есть один пример утечки памяти о СТАРЫЙ IE (7, 8):
<div id="myDiv">
<button id="myBtn">Click Me</button>
</div>
<script type="text/javascript">
var btn = document.getElementById("myBtn");
btn.onclick = function(){
document.getElementById("myDiv").innerHTML = "Processing...";
}
</script>
И решение, которое оно дает:
<div id="myDiv">
<button id="myBtn">Click Me</button>
</div>
<script type="text/javascript">
var btn = document.getElementById("myBtn");
btn.onclick = function(){
btn.onclick = null;
document.getElementById("myDiv").innerHTML = "Processing...";
}
</script>
Мое смущение здесь:
- В чем утечка: объект myBtn DOM или функция onclick? (Насколько я понимаю: он пытается сказать DOM, потому что этот innerHTML пытается заменить весь узел кнопки текстовым узлом)
- Если DOM является утечкой, то эта переменная
btn
по-прежнему ссылается на DOM, что приводит к невозможности ее GCed, почему это может быть решением?
Спасибо