Утечка событий Mootools - PullRequest
       3

Утечка событий Mootools

1 голос
/ 12 января 2011

Пример для демонстрации проблемы можно найти здесь:

текст ссылки

В тесте показан базовый класс Mootools, который содержит переменную элемента с событием clickприлагается.Также есть функция «очистки» для удаления события и обнуления переменной элемента.

Моя проблема в том, что когда я зацикливаюсь тысячу раз, чтобы создать экземпляр «LeakClass» и очистить его, это вызывает большую памятьутечка, как будто нет завтра.Я проверил это на IE8 и Chrome.

С другой стороны, я заметил, что если я закомментирую строку, которая добавляет событие «click», код не просочится.

Может кто-нибудь помочь мне структурировать класс / событие таким образом, чтобы он не пропускал.

Заранее спасибо.

1 Ответ

1 голос
/ 12 января 2011

чего вы пытаетесь достичь?

this.element = null; не извлекает элемент из DOM и не уничтожает его, он просто удаляет вашу ссылку на него. для этого вы должны использовать this.element.destroy();, который вызывает внутренние функции очистки - сначала применяет небольшой GC дочерних узлов, затем выполняет .empty(), затем удаляет его из DOM и, наконец, полностью удаляет. Ваш код просто создаст множество элементов, на которые перестанут ссылаться ссылки, но отсутствие ссылки не означает отсутствие существования. каждый элемент будет использовать память самостоятельно, события или нет.

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