在IE8中关闭iframe而不释放内存

时间:2013-12-26 21:44:21

标签: jquery internet-explorer internet-explorer-8

在一个在iframe中加载不同子页面的页面中,我发现IE8不会回收在发出$('iframe#frame1').remove();之类的内容时使用的任何内存。我正在查看Windows任务管理器,并观察iexplore.exe进程使用的内存,并且永远不会再回来。

为了解决这个问题,我开始保存对iframe的引用,因此我可以重复使用它们,而不是每次都创建新的iframe。这可能会使内存使用量减少整个页面使用量的5%。不是我所希望的。

最初,该页面正在进行Ajax调用并将内容加载到新的div中。我发现正在使用的一些jQuery插件并没有真正被添加和删除,因为它们在这里和那里附加事件并导致内存泄漏。我已经能够清理其中的一些泄漏,但我希望将代码放在iframe中将其分离出来,但iframe似乎永远不会在从页面中删除后在IE8中被垃圾收集。在某些时候,浏览器变得没有响应,甚至整个系统在某些机器上都会变慢,因为IE进程将使用1GB或更多。

如何解决IE8的这个问题?至少有50%的用户仍在使用IE8,而使用的单页架构是业务需求。添加和删​​除页面内容的最有效方法是什么,确保删除所有JS引用并在删除内容后释放内存?

0 个答案:

没有答案