解决ie img标签内存泄漏的问题
代码:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>IMG元素内存泄露测试</title> <script type="text/javascript" src="jquery-1.7.1.js"></script> <script type="text/javascript"> $(function () { var i = 0; var t; // img标签方式 function changeImage() { i++; var picIndex = i % 20; $("#imagePath").html("images/" + picIndex + ".jpg"); $("#div").append("<img width='100' height='100' src='images/" + picIndex + ".jpg' />"); }; function end() { clearInterval(t); $("#div").find("img").each(function () { $(this).attr("src", ""); $(this).remove(); }); CollectGarbage(); } t = window.setInterval(changeImage, 200); window.setTimeout(end, 5000); }); </script> </head> <body> <label id="imagePath"></label> <!-- 使用img标签,不改变图片大小,不会发生内存泄漏。 --> <div id="div"> </div> </body> </html>
释放img占用内存的js代码:
$("#div").find("img").each(function () { $(this).attr("src", ""); $(this).remove(); }); CollectGarbage();
以上这篇解决ie img标签内存泄漏的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
IE8 内存泄露(内存一直增长 )的原因及解决办法
最近开发的时候对页面使用了定时的局部更新,结果在ie6,7和Firefox下,一切正常,而在ie8下过上几个小时就浏览器就崩溃了,显示是内存溢出,我以为是代码写的不好导致内存泄露,但是ie6,7又正常,调查了一下,原来这是ie8的bug. 问题点 在IE8中,生成特定Dom节点所占用的内存是不会被释放的,即使这些节点被删除内存也不会被释放. 内存泄露的节点类型包括:form.button.input.select.textarea.a.img和objec 其他的大部分节点类型是不会泄露的,例如:
-
Javascript 闭包引起的IE内存泄露分析
复制代码 代码如下: function fors(){ obj_a = obj_b; obj_b.attr = obj_a; } 复制代码 代码如下: function fors(){ obj_b = {}; obj_b.attr = obj_b; } 上面是两个个很显示的循环引用,IE中产生了内存泄露,由于IE的内存回收机制,导至会长期占用内存而不能释放. 但闭包的内存泄露,有些隐蔽.因为闭包的循环引用,是间接的. 复制代码 代码如下: function iememery(){ var js_
-
解决ie img标签内存泄漏的问题
代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>IMG元素内存泄露测试</title> <script type="text/javascript" src="jquery-1.7.1.js"></script
-
Android性能优化之利用Rxlifecycle解决RxJava内存泄漏详解
前言: 其实RxJava引起的内存泄漏是我无意中发现了,本来是想了解Retrofit与RxJava相结合中是如何通过适配器模式解决的,结果却发现了RxJava是会引起内存泄漏的,所有想着查找一下资料学习一下如何解决RxJava引起的内存泄漏,就查到了利用Rxlifecycle开源框架可以解决,今天周末就来学习一下如何使用Rxlifecycle. 引用泄漏的背景: RxJava作为一种响应式编程框架,是目前编程界网红,可谓是家喻户晓,其简洁的编码风格.易用易读的链式方法调用.强大的异步支持等使得R
-
Android Handler内存泄漏详解及其解决方案
关联篇:深入Android的消息机制源码详解-Handler,MessageQueue与Looper关系 关联篇:HandlerThread 使用及其源码完全解析 在android开发过程中,我们可能会遇到过令人奔溃的OOM异常,面对这样的异常我们是既熟悉又深恶痛绝的,因为造成OOM的原因有很多种情况,如加载图片过大,某已不再使用的类未被GC及时回收等等......本篇我们就来分析其中一种造成OOM的场景,它就是罪恶的内存泄漏.对于这样的称呼,我们并不陌生,甚至屡次与之"并肩作战",
-
Android内存泄漏终极解决篇(上)
一.概述 在Android的开发中,经常听到"内存泄漏"这个词."内存泄漏"就是一个对象已经不需要再使用了,但是因为其它的对象持有该对象的引用,导致它的内存不能被回收."内存泄漏"的慢慢积累,最终会导致OOM的发生,千里之堤,毁于蚁穴.所以在写代码的过程中,应该要注意规避会导致"内存泄漏"的代码写法,提高软件的健壮性. 本文将从发现问题.解决问题.总结问题的三个角度出发,循序渐进,彻底解决"内存泄漏"的问题
-
Android内存泄漏终极解决篇(下)
一.概述 在 Android内存泄漏终极解决篇(上)中我们介绍了如何检查一个App是否存在内存泄漏的问题,本篇将总结典型的内存泄漏的代码,并给出对应的解决方案.内存泄漏的主要问题可以分为以下几种类型: 静态变量引起的内存泄漏 非静态内部类引起的内存泄漏 资源未关闭引起的内存泄漏 二.静态变量引起的内存泄漏 在java中静态变量的生命周期是在类加载时开始,类卸载时结束.换句话说,在android中其生命周期是在进程启动时开始,进程死亡时结束.所以在程序的运行期间,如果进程没有被杀死,静态变量就会一
-
Android 有效的解决内存泄漏的问题实例详解
Android 有效的解决内存泄漏的问题 Android内存泄漏,我想做Android 应用的时候遇到的话很是头疼,这里是我在网上找的不错的资料,实例详解这个问题的解决方案 前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题.在网上找了很多资料,有很多都是互相抄的,没有实际的作用. 本文的内存泄漏检测工具是:LeakCanary github地址:https://github.com/square/leakcanary 什么是内存泄漏? 内存泄漏
-
Android性能优化之利用强大的LeakCanary检测内存泄漏及解决办法
前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来.所以决定抽空学习总结一下这方面的知识,以及分享一下我们是如何检测内存泄漏的.我们公司使用开源框架LeakCanary来检测内存泄漏. 什么是内存泄漏? 有些对象只有有限的生命周期.当它们的任务完成之后,它们将被垃圾回收.如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,这就会导致内存泄漏
-
5个Android开发中比较常见的内存泄漏问题及解决办法
android中一个对象已经不需要了,但是其他对象还持有他的引用,导致他不能回收,导致这个对象暂存在内存中,这样内存泄漏就出现了. 内存泄漏出现多了,会是应用占用过多的没存,当占用的内存超过了系统分配的内存容量,就会出现内存溢出了导致应用Crash. 了解了内存泄漏的原因及影响后,我们需要做的就是掌握常见的内存泄漏,并在以后的Android程序开发中,尽量避免它.下面搜罗了5个Android开发中比较常见的内存泄漏问题及解决办法,分享给大家,一起来看看吧. 一.单例造成的内存泄漏 android
-
Android 5.1 WebView内存泄漏问题及快速解决方法
问题背景 在排查项目内存泄漏过程中发现了一些由WebView引起的内存泄漏,经过测试发现该部分泄漏只会出现在android 5.1及以上的机型.虽然项目使用WebView的场景并不多,但秉承着一个泄漏都不放过的精神,我们肯定要把它给解决了. 遇到的问题 项目中使用WebView的页面主要在FAQ页面,问题也出现在多次进入退出时,发现内存占用大,GC频繁.使用LeakCanary观察发现有两个内存泄漏很频繁: 我们分析一下这两个泄漏: 从图一我们可以发现是WebView的ContentViewCo
-
详解ES6通过WeakMap解决内存泄漏问题
一.Map 1.定义 Map对象保存键值对,类似于数据结构字典:与传统上的对象只能用字符串当键不同,Map对象可以使用任意值当键. 2.语法 new Map([iterable]) 属性 size:返回键值对的数量. 操作方法 set(key, value):设置(新增/更新)键key的值为value,返回Map对象. get(key):读取键key的值,没有则返回undefined. has(key):判断一个Map对象中是否存在某个键值对,返回true/false. delete(key):
随机推荐
- SQL Server中TRUNCATE事务回滚操作方法
- Centos7使用yum安装Mysql5.7.19的详细步骤
- node+koa实现数据mock接口的方法
- 快速排序 php与javascript的不同之处
- JS实现可点击展开与关闭的左侧广告代码
- php删除数组指定元素实现代码
- PHP创建word文档的方法(平台无关)
- 通过sql语句将blob里的char取出来转成数字保存在其它字段
- Python内置函数Type()函数一个有趣的用法
- 浅析jQuery对select操作小结(遍历option,操作option)
- sql server建库、建表、建约束技巧
- 合理的配置防火墙
- Struts2学习笔记(8)-Result常用类型
- asp.net 动态生成控件并获取其值
- PHP实现获取文件后缀名的几种常用方法
- 手势滑动结束Activity基本功能的实现(一)
- vue-cli webpack2项目打包优化分享
- pytorch 更改预训练模型网络结构的方法
- Tomcat中的Session与Cookie深入讲解
- JavaScript 作用域实例分析