Сообщение от рони
|
while (elem.firstChild) {
elem.firstChild.remove()
}
|
elem.innerHTML = '';
Ничуть не хуже.
Сообщение от Was-Ja
|
есть ли какой-то простой способ гарантированно удалить все ресурсы, которые были аллоцированы в предыдущей версии того, что было в innerHTML?
|
Гарантированного способа нет.
<div id=clear>
bla-bla-bla
<div id=noremove>bla-bla-bla</div>
bla-bla-bla
</div>
let dc=document.getElementById('clear');
let dnr =document.getElementById('noremove');
dc.innerHTML = '';
div clear - очистится, но div noremove продолжит свое существование вместе с занятыми ресурсами в памяти, пока переменная dnr (или какая то другая) ссылается на него. Его даже можно вставить куда то.
Далее
function f () {....}
let bf = f.bind(dnr);
Пока существует переменная bf и ссылается на функцию, div noremove не будет удален из памяти