`

[分享] 关于 iframe 内存泄漏问题

阅读更多
设置 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 内存泄露分析是指在使用 Iframe 时,由于互相引用、闭包、跨页面泄漏、伪泄漏等原因,导致浏览器内存泄漏的问题。这种问题在 Ajax 盛行以前并不是什么大问题,因为都是通过页面跳转和刷新来进行与服务端的...

    IE浏览器IFrame对象内存不释放问题解决方法

    标题中的“IE浏览器IFrame对象内存不释放问题解决方法”是指在使用Internet Explorer(IE)浏览器时,...通过编写适当的JavaScript代码并考虑到可能存在的限制,可以有效地避免因IFrame内存泄漏导致的浏览器性能问题。

    iframe跨域常用问题和iframe页面自适应

    本篇文章将深入探讨两个关键知识点:`iframe`跨域问题以及`iframe`页面的自适应。 一、`iframe`跨域问题 跨域是Web开发中的一个重要概念,它限制了浏览器从一个源获取另一个源的资源,以保护用户的安全。当`iframe...

    完美解决iframe跨域问题

    3. **iframe跨域问题**:当iframe加载的页面与包含它的页面不在同一个域时,就会出现跨域问题,导致无法直接通过JavaScript进行通信,如获取iframe内的内容、设置iframe的属性等。 **二、iframe跨域的解决方案** 1...

    关于iframe的用法

    4. **视频播放**:视频分享网站如YouTube通常提供iframe代码以便在其他网站上嵌入视频。 5. **地图集成**:Google Maps等地图服务允许通过iframe将地图嵌入到网站中。 6. **隐私保护**:iframe可以用来隔离不同来源...

    iframe去边框问题

    以下是一些关于解决`iframe`边框问题和一级边框设置的知识点: 1. **CSS样式控制**: - `border`: 可以直接使用CSS的`border`属性来设置边框的宽度、样式和颜色。为`iframe`元素添加`border: none;`可以去掉边框。...

    js处理iframe的系列问题

    通过对上述知识点的学习,我们可以更加灵活地利用JavaScript来处理`iframe`中的各种问题,包括但不限于访问、修改`iframe`内部元素、提交表单、调用方法以及触发事件等。这些技巧对于开发复杂的Web应用来说是非常...

    解决iframe中fixed失效的问题

    在提供的压缩包文件 "iframe中fixed失效问题" 中,可能包含了具体的代码示例或演示页面,你可以直接打开查看这些案例,以更好地理解和应用上述解决方案。实际操作时,需要根据具体项目需求和限制选择合适的方法,...

    iframe内容高度 iframe自适应高度终极解决Iframe设置高度后无法缩小问题

    然而,`<iframe>`的高度自适应问题常常困扰着开发者,尤其是当`<iframe>`内部的内容动态加载或者变化时,如何让`<iframe>`自动调整其高度以适应内容,而不会导致滚动条溢出或内容被截断,成为了一个常见需求。...

    iframe如何动态创建及释放其所占内存

    然而,不当使用`iframe`可能会导致浏览器内存占用过高,尤其是在旧版本的IE浏览器中。本文将探讨如何动态创建`iframe`以及如何有效地释放其占用的内存。 首先,我们来看如何动态创建`iframe`。动态创建`iframe`的...

    解决下拉菜单被iframe遮住问题

    在网页设计中,下拉菜单经常用于实现导航或者选项选择,但当这些菜单位于一个`iframe`元素内部时,可能会遇到被`iframe`遮挡的问题。这个问题主要涉及到浏览器的层叠上下文(CSS Z-Index)和`iframe`的渲染机制。...

    vue单页应用的内存泄露定位和修复问题小结

    Vue 单页应用的内存泄露定位与修复是一个关键的话题,特别是在复杂的前端项目中。内存泄漏可能导致性能下降,甚至导致应用程序崩溃。以下是对这个问题的详细解释和解决方案。 首先,理解内存泄漏的概念至关重要。...

    Flex中利用IFrame解决嵌入HTML时Flex组件被遮挡和IFrame被隐藏的问题

    本文将详细讲解如何利用IFrame解决这些问题,特别是针对Flex菜单的遮挡问题。 首先,理解Flex和IFrame的基本概念是必要的。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。而...

    iframe兄弟页面相互调用

    在网页开发中,`iframe`(Inline Frame)是一种嵌入式框架,用于在单个HTML文档中嵌入另一个HTML文档。这种技术常被用来实现页面的分层展示、...同时,要时刻注意同源策略和跨域安全问题,确保代码的稳定性和安全性。

    vue基于iframe优雅实现全新的微前端方案,继承iframe的优点,补足 iframe 的缺点,让 iframe 焕发新生

    内容概要:以vue2为例,搭建一个...2、使用position: fixed解决iframe的弹窗及遮罩层问题 3、使用requestFullscreen()解决iframe里的全屏问题 4、使用history解决浏览器的后退问题 5、页面刷新,iframe可以加载正确页面

    easyui iframe 页面重复加载的问题

    在使用easyui框架开发Web应用时,特别是在使用tab布局的时候,开发者可能会遇到页面内容被放置在iframe中时,页面多次加载的问题。这种情况尤其会在使用easyui的tab布局时发生,因为easyui会默认加载所有tab的内容,...

    iframe 跨域解决方法

    然而,由于浏览器的同源策略限制,当`iframe`加载的页面与包含它的页面不在同一个域名下时,就会遇到跨域问题。这篇博客将深入探讨如何解决`iframe`的跨域问题。 首先,理解同源策略是至关重要的。同源策略是浏览器...

    关于iframe跨域POST提交的方法示例

    以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...

Global site tag (gtag.js) - Google Analytics