Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查看对象引用的工具_Javascript_Node.js_Backbone.js_Backbone Views - Fatal编程技术网

Javascript 查看对象引用的工具

Javascript 查看对象引用的工具,javascript,node.js,backbone.js,backbone-views,Javascript,Node.js,Backbone.js,Backbone Views,有没有Node.js或浏览器的工具可以让我找出哪些对象包含对对象X的引用 现在我正在使用主干网进行前端开发,尽管我删除了视图,但之后似乎仍然有对它们的引用 我之所以怀疑这种行为,首先是因为我在Chrome和Mozilla中使用插件/插件进行主干调试 这确实让我想知道,这些程序本身是否持有对主干对象的引用 首先,遗憾的是没有办法做到这一点。 您可以检查谁调用函数,以及哪个特定变量作为引用保存的对象。 这不是因为Backbone/Node.js,而是因为Javascript本身。 替换对象/数组时,

有没有Node.js或浏览器的工具可以让我找出哪些对象包含对对象X的引用

现在我正在使用主干网进行前端开发,尽管我删除了视图,但之后似乎仍然有对它们的引用

我之所以怀疑这种行为,首先是因为我在Chrome和Mozilla中使用插件/插件进行主干调试


这确实让我想知道,这些程序本身是否持有对主干对象的引用

首先,遗憾的是没有办法做到这一点。 您可以检查谁调用函数,以及哪个特定变量作为引用保存的对象。 这不是因为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的插件保留了主干视图的引用……会让你知道我发现了什么