我有将页面加载到 iframe 中的链接。我一直在使用谷歌浏览器的内存堆分析器监控内存中的数据积累,我注意到内存中有一些泄漏。
我加载了页面并拍摄了第一个快照,加起来为2.69 MB
. 我单击了将页面打开到 iframe 中的链接,并拍摄了另一个快照给我14.58 MB
。我使用以下 jquery 片段删除了 iframe:
$('#myframe').unbind();
$('#myframe').remove();
/*
* By the way, I also tried $('#myframe > *') as a selector.
* It still didn't work. Even if it would, it doesn't look like a viable solution to me.
* It looks too resource intensive.
*
* I forgot to mention that I am not using Ajax to load my pages
*/
我又拍了一张快照,得到5.28 MB
的结果表明与初始值有偏差2.59 MB
,据我了解,这表明内存泄漏。
现在,我的问题是:如果我删除一个 iframe(包括其中加载的文档),垃圾收集器是否发现有必要从内存中删除该文档中包含的所有对象?还是我必须手动执行此操作?
我认为如果我将文档加载到 iframe 中,它的大小不会影响父页面上的内存使用。我虽然将它视为一个单独的窗口,但显然这不是我的一个明智的假设。
关于如何解决这个问题的任何建议?
谢谢你。