createElement, клонировать, но никогда не добавлять: утечка памяти? - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть родительский класс Шаблоны , который загружает некоторый HTML-код в элемент div, который фактически никогда не присоединяется к DOM.HTML-код, который он загружает, может содержать несколько разных шаблонов, и класс позволяет вам вызывать их, искать их по идентификатору в (не прикрепленном) элементе div и возвращать их клон для присоединения к DOM.

Иногда, однако, этот шаблонный класс может быть создан несколько раз, создавая многочисленные div, которые никогда не добавляются (просто используются для клонирования).В общем, если ссылки на эти div в javascript явно установлены в null, и они не добавляются в DOM, они собирают мусор?Или они где-то накапливаются?

Угадайте, что я имею в виду:

private el:HTMLElement;
constructor(htm:string) {
   this.el = document.createElement('div');
   $(this.el).html(htm);
}
public draw(selector:string):HTMLElement {
   return ($(this.el).find(selector).clone());
}
public destroy():void {
   this.el = null;
}

Как только уничтожается вызов, учитывая, что this.el никогда не добавлялся в DOM, и предполагая, что никакого другого кода нетимеет доступ к нему, будет ли 'div', на котором он находился, собирать мусор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...