Javascript 查看对象引用的工具
有没有Node.js或浏览器的工具可以让我找出哪些对象包含对对象X的引用 现在我正在使用主干网进行前端开发,尽管我删除了视图,但之后似乎仍然有对它们的引用 我之所以怀疑这种行为,首先是因为我在Chrome和Mozilla中使用插件/插件进行主干调试Javascript 查看对象引用的工具,javascript,node.js,backbone.js,backbone-views,Javascript,Node.js,Backbone.js,Backbone Views,有没有Node.js或浏览器的工具可以让我找出哪些对象包含对对象X的引用 现在我正在使用主干网进行前端开发,尽管我删除了视图,但之后似乎仍然有对它们的引用 我之所以怀疑这种行为,首先是因为我在Chrome和Mozilla中使用插件/插件进行主干调试 这确实让我想知道,这些程序本身是否持有对主干对象的引用 首先,遗憾的是没有办法做到这一点。 您可以检查谁调用函数,以及哪个特定变量作为引用保存的对象。 这不是因为Backbone/Node.js,而是因为Javascript本身。 替换对象/数组时,
这确实让我想知道,这些程序本身是否持有对主干对象的引用 首先,遗憾的是没有办法做到这一点。 您可以检查谁调用函数,以及哪个特定变量作为引用保存的对象。 这不是因为Backbone/Node.js,而是因为Javascript本身。 替换对象/数组时,javascript只将目标内存地址传递给变量 但我认为,内存泄漏问题的原因很可能不是来自其他变量的引用,而是在主干网使用中经常看到的事件处理程序(也称为“僵尸视图”) 在视图中设置事件处理程序后,在实际删除视图(
.remove()
)之前,需要确保所有事件都已取消设置,除非只对主干事件使用listenTo
,而对jQuery事件使用this.$el
。
因为当您删除视图时,通过listenTo
和this.$el
设置的事件将由主干核心自动删除。
而由Model.on
或global jQuery$
设置的事件则不是这样
因此,请检查您的整个代码是否正在使用
.on
或全局jQuery对象来设置事件,如果有,请将它们替换为listenTo
或this.$el.on
或在删除它们之前手动取消设置它们。是的,我正在使用this.listenTo等,我仍然有僵尸观点——我阅读了所有关于这一现象的文章,并尽了最大的努力防止它——我认真地认为,可能是Chrome和Mozilla的插件保留了主干视图的引用……会让你知道我发现了什么