Прежде всего, к сожалению, нет никакого способа сделать это. Вы можете проверить, кто вызывает функцию и объект, какая конкретная переменная содержит ссылку. Это не из-за 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
вручную или убрать их, прежде чем удалить их.
Да, я использую this.listenTo и т. Д., И у меня все еще есть взгляды на зомби. Я читал все об этом явлении и сделал все возможное, чтобы предотвратить его. Я серьезно думаю, что это могут быть наблюдательные плагины для Chrome и Mozilla, которые держат на ссылки для представлений Backbone ... позволит вам узнать, что я узнаю –