Утечки памяти при 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, время: 17:03. |