未经验证
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);
}
}
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);
}
}