Javascript location.reload后内存泄漏
我有一些如下的代码Javascript location.reload后内存泄漏,javascript,html,dom,memory-leaks,Javascript,Html,Dom,Memory Leaks,我有一些如下的代码 var domNode = somehowGet(); domNode.someEvent = function(){ domNode.appendChild(createNodeUsing(window)); }; window.guid = createGuid(); // called at startup 调用location.reload后,我打开DevTools profiler,看到一些分离的树节点和其他窗口实例,它们的数量与重新加载的数量完全相同
var domNode = somehowGet();
domNode.someEvent = function(){
domNode.appendChild(createNodeUsing(window));
};
window.guid = createGuid(); // called at startup
调用location.reload后,我打开DevTools profiler,看到一些分离的树节点和其他窗口实例,它们的数量与重新加载的数量完全相同
也就是说,如果我调用location.reload 5次,将有5个窗口对象的额外实例,并且它们都有不同的GUID
问题是-如果除了上面我展示的那些引用之外,没有其他对domNode的引用,GC会释放内存吗
换句话说,我需要知道为什么有几个窗口实例
浏览器是一些最新版本。domNode.someEvent=function(){}是一种循环引用模式。domNode获得了对someEvent的引用,someEvent是一个属性,在这个someEvent函数中,domNode仍然是可引用的(作为闭包) 我不确定chrome是否可以回收内存,但我认为应该避免这种模式
请参阅此处的更多详细信息 这样的代码超过10MB,我无法在可预测的时间内以适当的方式修复它。我需要知道这样的代码是否会导致内存泄漏。