设置 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();” 这个方法因为不兼容其他浏览器,有时还不能释放,而且不建议做频繁释放操作,所以有些内存还是交给浏览器处理吧。
如果还有什么好的方法,欢迎提出。
转至:http://www.cnblogs.com/wuxinxi007/archive/2009/12/23/1630469.html
分享到:
相关推荐
Iframe内存泄露分析,Iframe内存泄露分析
主要介绍了IE下使用jQuery重置iframe地址时内存泄露问题解决办法,需要的朋友可以参考下
这是关于iframe使用过程中出现的问题整理的解决方法,关于使用iframe不用单独写接口打通数据,直接把数据通过ifarme嵌套方法传递过去,使用简单方便。
在前端项目(PC端)中,内存泄露的定位往往比修复更加困难,即使google浏览器有提供Memory工具,但是面对成千上万的元素和错综复杂的引用关系,开发则依然很难快速定位到问题代码块。 一、什么是内存泄漏? 系统进程...
分析发现是iframe没有释放造成的,于是对所有已关闭的iframe所占用的内存进行释放,虽然不能完全释放,但是iframe内存占用量不会一直增长,整个应用内存使用量控制在150M左右。 /** * 动态创建iframe * @param dom...
框架完美解决了iframe之间的跨域通讯。底层技术采用window.name转换代理实现
IFrame对象占用的内存资源在窗体关闭后不会释放。弹出关闭反复多次后,IE浏览器内存占用可超过数百M,严重时IE浏览器报错
以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...
解决iframe去边框问题,一级边框设置的一些知识!
主要处理javascript对iframe框架的处理
有关iframe的用法,以及要用的图标 有关iframe的用法,以及要用的图标
解决下拉菜单被iframe遮住问题吗,
该文档介绍了vue和普通web页面中iframe实现跨域的解决方案,解决了主页面中无法调用iframe方法的问题
iframe 跨域访问session问题解决方法
iframe跨域问题:Uncaught DOMException Blocked a frame with origin解决方法
关于iframe页面报错如何跳到框架显示,c# js两种
这是一个解决fixed在iframe中失效的解决案例,只要把文件放到编辑器中打开即可看到效果
它最常见的问题与使用iframes提供一系列的功能,其中包括: 高度和宽度大小的iframe内容大小。 作品以多个嵌套的iframe。 跨域iframe域认证。 提供了一系列的页面大小的计算方法来支持复杂的CSS布局。 检测修改DOM...
Iframe自动根据类容改变自己的大小,解决Iframe设置高度后无法缩小!拜一个高人所赐,特表示感谢!