`

[分享] 关于 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
分享到:
评论

相关推荐

    javascript小技巧,含有多种特效,实用功能

    这对于避免内存泄漏非常重要。 #### 其他技巧 - **`navigator.plugins`**: 获取浏览器安装的插件信息。这对于检测浏览器支持情况很有帮助。 - **`typeof($js_libpath)=="undefined"`**: 检查变量是否已经定义。这...

    Popup Youtube Android Ios.rar

    同时,为了防止内存泄漏,务必正确处理生命周期事件,如应用进入后台和恢复时的处理。 总的来说,实现Popup YouTube功能需要对Unity引擎、Android/iOS原生开发以及YouTube API有深入理解。通过合理的设计和优化,...

    exo:dis gif崩溃diskord! 我不赚! d

    4. **资源加载问题**:如果HTML代码试图加载外部资源(如图片、脚本或样式表),而这些资源无法访问,也可能导致预览问题,尤其是当这些资源的加载方式导致无限循环或者内存泄漏时。 5. **编码问题**:如果HTML代码...

    小米2019秋招前端开发笔试题(2).docx

    闭包会占用内存,不当使用可能导致内存泄漏。 #### 15. HTML 标签 **题目**: 以下标签不存在的是(b) - a. Body - b. Dlv - c. Footer - d. Picture **答案解析**: - a. `<body>`是HTML文档的主体部分。 - b. ...

    ASP.NET中几种有用的特效

    同时,性能分析工具(如ANTS Profiler)可以检测内存泄漏和性能瓶颈,确保应用程序在生产环境中稳定高效。 总之,ASP.NET提供了一系列工具和技术,让开发者能够创建富交互、高性能的Web应用,其中图片预览和在线...

    把PDF文件展示在前端页面

    在现代Web应用中,将PDF文件直接在前端页面展示给用户是一种常见的需求,尤其是在文档分享、在线阅读和教育领域。本篇文章将详细讲解如何利用给定的`touchpdf-master`压缩包来实现这一功能。 首先,`touchpdf-...

Global site tag (gtag.js) - Google Analytics