2015-07-15 2 views
1

Есть ли инструмент для Node.js или браузера, где я могу узнать, какие объекты содержат ссылку на объект X?Инструмент для просмотра ссылок на объекты

В настоящее время я использую Backbone для разработки интерфейса, и хотя я удаляю просмотры, по-прежнему кажется, что они ссылаются на них.

Причина, по которой я подозреваю, что это поведение в первую очередь связано с тем, что я использую плагин/аддоны для отладки Backbone в Chrome и Mozilla.

Это меня заставляет задуматься, возможно ли, что эти программы являются теми, кто держит ссылки на объекты Backbone!

ответ

3

Прежде всего, к сожалению, нет никакого способа сделать это. Вы можете проверить, кто вызывает функцию и объект, какая конкретная переменная содержит ссылку. Это не из-за Backbone/Node.js, а самого Javascript. При замене объекта/массива javascript передает только адрес целевой памяти в переменную.

Но я предполагаю, что это весьма возможно, что причина, почему у вас возникли проблемы утечки памяти не из-за ссылок от других переменных, но обработчики событий, которые часто видели в Backbone использует (также knowns как «вид зомби»)

После того, как вы установите обработчик событий в представлении, вам необходимо убедиться, что все события не удалены, прежде чем вы фактически удалите представление (.remove()), если только вы используете только listenTo для магистральных событий и this.$el для событий jQuery. Поскольку события, установленные через listenTo и this.$el, автоматически удаляются Backbone Core при удалении представления. И события, установленные Model.on или глобальными jQuery $, не были бы такими.

Так Пожалуйста, проверьте весь свой код, являетесь ли Вы с помощью .on или глобального JQuery объекта, чтобы установить событие, в случае, если вы заменят их в listenTo или this.$el.on вручную или убрать их, прежде чем удалить их.

+0

Да, я использую this.listenTo и т. Д., И у меня все еще есть взгляды на зомби. Я читал все об этом явлении и сделал все возможное, чтобы предотвратить его. Я серьезно думаю, что это могут быть наблюдательные плагины для Chrome и Mozilla, которые держат на ссылки для представлений Backbone ... позволит вам узнать, что я узнаю –

 Смежные вопросы

  • Нет связанных вопросов^_^