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