Утечки памяти при addEventListener
Вопрос к мастерам javascript:
Есть ли необходимость удалять обработчики, навешанные методом addEventListener перед удалением элемента, в ситуации если добавляемая функция не имеет в своем замыкании ссылку на элемент? Просьба аргументировать ссылкой. |
Ссылка на элемент не при чем. Можете не удалять если удаляется немного.
|
Дык какая разница че там имеет функция. Важно чтобы на функцию не было ссылок. С удалением элемента удалится и ссылка на приаттаченный обработчик. Так ведь?
|
да наверное, на всякий случай спросил, хотел пообщаться
|
|
Цитата:
|
Цитата:
<html>
<head>
</head>
<body>
<script>
el=document.createElement("div")
el.innerHTML="div"
document.body.appendChild(el)
el.addEventListener("click", function(){alert(1)})
document.body.removeChild(el) // элемент никуда не делся, обработчик тоже
document.body.appendChild(el)
</script>
</body>
</html>
|
Цитата:
GC от рута это последний эшелон, если не удалось подчистить память сразу. И да, он более медленный чем удаление объектов без циклических ссылок(которые могут быть удалены просто по обнулению количества ссылок на себя) Но эти проблемы могут вас начать волновать на больших объемах вычислений |
Цитата:
|
| Часовой пояс GMT +3, время: 09:16. |