[分享] 关于 iframe 内存泄漏问题
2009-12-23 12:51
260 查看
设置 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();” 这个方法因为不兼容其他浏览器,有时还不能释放,而且不建议做频繁释放操作,所以有些内存还是交给浏览器处理吧。
如果还有什么好的方法,欢迎提出。
这样才能将内容清空,但是这样处理之后任然会有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();” 这个方法因为不兼容其他浏览器,有时还不能释放,而且不建议做频繁释放操作,所以有些内存还是交给浏览器处理吧。
如果还有什么好的方法,欢迎提出。
相关文章推荐
- [分享] 关于 iframe 内存泄漏问题
- 关于内存泄漏检测问题,和大家一起分享
- 关于内存泄漏检测问题,和大家一起分享
- 分享一道笔试题目--关于static和extern变量的问题
- 关于内存泄漏的问题
- 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
- 友盟分享中关于QQ的问题
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- 有关一个 iframe 的问题,关于在 iframe 内的页面内登录成功后,如何由当前页直接转到另一个页面内?
- 关于IE下面iframe跨域 cookie丢失的问题
- 关于闭包在IE9及之前浏览器的内存泄漏问题
- 关于Java中的内存泄漏问题及注意事项
- 关于微信分享出现的一些问题
- 关于 ie 下使用 iframe 加载子页面时,子页面ajax数据能进入success方法,但是数据为空的问题
- 关于easyui使用<iframe />与Dialog弹框问题
- 关于有ajax 请求的iframe自适应高度问题
- 关于tomcat内存泄漏问题
- Go 贡献者 minux.ma 关于内存泄漏问题的详细解释
- 关于关闭TAB,IFRAME占用的内存不能释放问题
- 关于Qt5 QSerialPort使用内存泄漏问题