Вход

Просмотр полной версии : утечки памяти в js


6at9l
19.10.2016, 11:24
<div id="id1">
<p id="id_p"> content </p>
</div>


document.getElementById("id_p").addEventListener("click", function(e)
{
// обработчик что то делает
});

// какой то код
// ....
document.getElementById("id1").innerHTML = "";


Вопрос, что произойдет с обработчиком который был установлен на тег <p> ?
будут ли он занимать память либо удалится вместе с элементом ?

warren buffet
19.10.2016, 12:47
Ничего не надо. Нет объекта - нет и листенера. Ну то есть гарбач-коллектор сам все выпилит, даже не парься, инфа 100%.

6at9l
19.10.2016, 13:10
Спасибо.

moron
19.10.2016, 23:48
но стоит упомянуть про jq, которым пользуются многие.
Если обработчик повешен с помощью jq и элемент удален не jq методами, то обработчик так и останется висеть в памяти.

warren buffet
20.10.2016, 05:57
Ну да, jq-объект-то остается. Вот почему jq - зло )

join
20.10.2016, 07:00
https://learn.javascript.ru/memory-leaks-jquery#используем-jquery-без-утечек