所有版本的IE(包括10个)似乎都会保留iframe分配的大量内存,直到发生window.top.unload.这为长寿命页面带来了相当大的挑战,这些页面可能在其整个生命周期中创建许多iframe.可以在此处找到问题的简化示例:
该示例使用iframe的Wikipedia页面来放大问题,但即使是包含单个图像的简单页面也会泄漏.
简而言之,在IE中销毁iframe之后,在下一次页面触发垃圾收集时会得到一些但不是全部内存(通常iframe使用的内存大约有25%会陷入困境).刷新或导航到新页面(window.top.unload)将释放大部分或全部剩余内存.
在sIEve和Microsoft的JS Memory Leak Detector等工具中无法检测到这种特殊泄漏.我已经阅读了IE中关于漏洞iframe的所有内容,但是我遇到过的解决方案没有运气.
有没有人知道这个问题的解决方案或解决方法?我唯一的缓解策略是在父页面销毁之前尽可能多地从iframe中进行清理,但是当你不控制被框架的页面时,这没有任何帮助.