[分享] 关于 iframe 内存泄漏问题

设置 iframe 的 src 为 'about:blank' 之后,不置为“about:blank”,内存不会释放掉。还必须用 iframe.document.write('');

这样才能将内容清空,但是这样处理之后任然会有500-1000K左右的内存残留,这就是ie6的iframe bug,动态创建的iframe总会耗费掉一些内存。

 

1、资源回收 

复制代码
function clearIframe(id){
    
var el = document.getElementById(id),
        iframe 
= el.contentWindow;
    
if(el){
        el.src 
= 'about:blank';
        
try{
            iframe.document.write(
'');
            iframe.document.clear();
        }
catch(e){};
        
//以上可以清除大部分的内存和文档节点记录数了
        //最后删除掉这个 iframe 就哦咧。
        document.body.removeChild(el);
    }
}
复制代码

2、触发事件

clearIframe('iframe_id');

 

可以在页面卸载前,移除 iframe 前触发。

文中没有提到 “CollectGarbage();”  这个方法因为不兼容其他浏览器,有时还不能释放,而且不建议做频繁释放操作,所以有些内存还是交给浏览器处理吧。

如果还有什么好的方法,欢迎提出。

posted @   小吴同学  阅读(5821)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示