现在的位置: 首页 > 综合 > 正文

iframe 内存释放

2014年08月02日 ⁄ 综合 ⁄ 共 832字 ⁄ 字号 评论关闭

未经验证

Ext 核心开发人员Jack的回答是,TabPanelItem在关闭时并不会对自定义到tab中的元素做特殊处理,这部分工作必须在控件外来完成。另一方面, 相关资料称IE在iframe元素的回收方面存在着bug,在通常情况下应该将该元素的src属性值修改为”abort:blank”,并手工将其从 DOM树上移除,然后把脚本中引用它的变量置空并调用CollectGarbage()就可以避免iframe不能正常回收所造成的内存泄露。

按照上述方法,在tab的close事件中添加了iframe的销毁代码,IE的内存泄露问题得以解决。

 

var frame = $('iframe');

frame[0].contentWindow.document.write('');//清空iframe的内容
frame[0].contentWindow.close();//避免iframe内存泄漏
frame.remove();//删除iframe

===http://www.cnblogs.com/wuxinxi007/archive/2009/12/23/1630469.html

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);
    }
}

抱歉!评论已关闭.