`
lixinlixin2008
  • 浏览: 152666 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

再说IE script内存不回收问题

阅读更多
Neil Fraser说script加载json内存会不释放,必须这么来一下:
for (var prop in jsFile) {
delete jsFile[prop];
}
IE没法这样,delete native对象的属性会报错,解决办法是重用script,例如始终只用一个或者几个。


我测试了一下,貌似IE无论是只用一个script,还是不住创建销毁script,内存都会飙升到1G多,并且不会释放内存,只有最小化一次浏览器,内存才会缓慢的释放。
(IE进程显示的内存数并非实际占用的内存大小)
求解决之道~~~~不胜感激,Google的文章基本都看遍了。。。




<!DOCTYPE html>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="zh-CN">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

<meta name="keywords" content=""/>



<script language="javascript">

	var mm1 = 0;
//	每次新建script
	function memery(){
		mm1++;

		arrcol为js文件里面的一个大数组
		if(window.arrcol){
			arrcol = null;
			delete arrcol;
		}
		
		var ds = document.getElementById("dataScript");
		if(ds){
			ds.id="";
			ds.src = null;
			ds.parentNode.removeChild(ds);
			ds = null;
		}
		
		var sc = document.createElement("script");
		sc.id="dataScript";
		document.getElementsByTagName("head")[0].appendChild(sc);
		
		
		
//		data1.js和data2.js为两个大数组,其实这里用一个js就可以, 不用两个js
		sc.src = "data"+mm1%2+".js?num="+mm1;
		
	}
	
	
	
//	只用一个script
//	function memery(){
//		mm1++;
//		
////		arrcol为js文件里面的一个大数组
//		if(window.arrcol){
//			arrcol = null;
//			delete arrcol;
//		}
//		
//		var ds = document.getElementById("dataScript");
//		if(!ds){
//			ds = document.createElement("script");
//			ds.id="dataScript";
//			document.getElementsByTagName("head")[0].appendChild(ds);
//		}
//		
//		
//		
//		

////		data1.js和data2.js为两个大数组,其实这里用一个js就可以, 不用两个js
//		ds.src = "data"+mm1%2+".js?num="+mm1;
//		
//	}
	

</script>
</head>
<body onload="">
	
	<input type="button" value="test" onclick="memery()" />
	
	<div id="imgs_div"></div>
	
	Neil Fraser说script加载json内存会不释放,必须这么来一下:<br>
	for (var prop in jsFile) {	
		delete jsFile[prop];
	} <br>
	IE没法这样,delete native对象的属性会报错,解决办法是重用script,例如始终只用一个或者几个。<br>
	
	<br>
	我测试了一下,貌似IE无论是只用一个script,还是不住创建销毁script,内存都会飙升到1G多,并且不会释放内存,只有最小化一次浏览器,内存才会缓慢的释放。
	<br>(IE进程显示的内存数并非实际占用的内存大小)<br>
	求解决之道~~~~不胜感激,Google的文章基本都看遍了。。。
	<br>
	
</body>
</html>

分享到:
评论
2 楼 lixinlixin2008 2012-11-17  
fireinjava 写道
请问有解了不?

不搞js了,不知道了哈
1 楼 fireinjava 2012-10-25  
请问有解了不?

相关推荐

    解决IE的script error catched问题

    解决IE的script error catched问题

    ie内存泄漏检测软件

    然而,随着技术的发展,IE浏览器的一些问题逐渐暴露出来,其中最知名的便是“内存泄漏”问题。 内存泄漏,简单来说,是指程序在申请内存后,无法释放已申请的内存空间,一次小的内存泄漏可能影响不大,但随着时间...

    ie内存泄露监控软件

    在IT行业中,内存泄露是一个至关重要的问题,尤其对于长时间运行的应用程序,如Web浏览器,例如Internet Explorer(简称IE)。"ie内存泄露监控软件"是专门针对IE浏览器设计的一种工具,旨在检测和分析IE客户端可能...

    Drip 检测IE内存泄漏

    内存泄漏是编程中的一个常见问题,尤其是在JavaScript环境中,由于IE浏览器的内存管理机制,这个问题显得尤为突出。Drip作为一个实用的工具,帮助开发者定位和解决这一问题,提高Web应用程序的性能和稳定性。 在...

    ie Microsoft script debugger

    通过熟练使用“ie Microsoft script debugger”,开发者可以更高效地诊断和修复JavaScript代码的问题,提高网页应用的稳定性和性能。在现代开发环境中,虽然很多浏览器已经内置了强大的开发者工具,但对旧版IE的支持...

    IE内存泄露分析工具:sIEve/Drip

    标题中的“IE内存泄露分析工具:sIEve/Drip”指的是两个专门用于检测和分析Internet Explorer浏览器内存泄漏问题的工具。sIEve和Drip是独立的工具,但它们都致力于帮助开发者定位和解决IE浏览器中的内存管理问题。 ...

    修改IE进程数及内存释放问题

    本文将详细探讨如何针对"修改IE进程数及内存释放问题"进行优化。 首先,让我们了解IE浏览器在处理多标签时的工作机制。自IE8版本开始,微软引入了多进程架构,每个选项卡都会运行在一个独立的进程中,以提高浏览器...

    脚本IE内存泄露检测.rar

    总结来说,"脚本IE内存泄露检测.rar"是一个专为Internet Explorer设计的JavaScript内存泄漏检测工具,可以帮助开发者识别和解决JavaScript代码中的内存管理问题,提高应用程序的性能和稳定性。使用该工具需要运行...

    IE8打开出现内存不能READ和WRITTN的解决方法

    标题中的“IE8打开出现内存不能READ和WRITTN的解决方法”指的是在使用Internet Explorer 8(简称IE8)浏览器时,用户可能会遇到错误提示,指出“内存不能为READ”或“内存不能为WRITTN”。这种情况通常表明IE8在运行...

    测试JavaScript在IE中的内存泄露

    然而,在某些情况下,尤其是在老版本的Internet Explorer(IE)浏览器中,可能会出现内存泄露问题。内存泄露是指程序在申请内存后,无法释放已申请的内存空间,一次小的内存泄露可能没什么大碍,但随着时间推移,...

    IE内存监控sIEve-0.0.8

    这个工具专门设计用于检查和分析IE浏览器在运行时的内存使用情况,帮助用户或开发者识别可能导致性能问题或者内存泄漏的潜在问题。 **描述解读:** 描述中提到,“IE内存监控”是一个优秀的内存检测工具,没有过多...

    IE 内存检测工具

    3. **ActiveX控件**: 在IE中,ActiveX技术常用于增强网页功能,但不恰当的使用可能导致内存泄漏。 4. **内存剖析**: 这是检测内存泄漏的重要手段,通过查看程序运行期间内存的分配和释放情况,找出异常增长的部分。...

    sIEve-0.0.8(IE Sieve_检测IE内存泄露情况)

    值得注意的是,尽管sIEve主要用于检测IE的内存泄露,但它并不能自动修复这些问题。修复工作仍需要开发者手动进行。此外,由于sIEve专注于IE,对于其他浏览器的内存管理问题,它可能无法提供帮助。 总结来说,sIEve-...

    IE使用内存测试工具

    可以查看IE使用的内存情况,和dom情况,和是否存在内存溢出。

    解决ie img标签内存泄漏的问题

    - **调用CollectGarbage()**:在某些情况下,即使删除了DOM元素并清空了src,IE仍然可能不立即释放内存。可以尝试调用`CollectGarbage()`函数强制进行垃圾回收。但需要注意的是,这个函数在现代的IE版本中已经被...

    Drip IE内存监控工具

    **Drip IE内存监控工具...总之,Drip IE内存监控工具是开发和维护基于IE浏览器的应用程序时的一款有力辅助工具,它能够帮助开发者深入理解内存使用情况,提升代码质量和程序性能,降低出现因内存问题导致的故障风险。

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

    标题中的“IE浏览器IFrame对象内存不释放问题解决方法”是指在使用Internet Explorer(IE)浏览器时,特别是在涉及IFrame对象的场景下,可能会遇到内存管理的问题。IFrame是一种可以在网页中嵌入其他HTML页面的元素...

    IE script脚本检查工具.rar

    Microsoft Script Debug是微软公司推出的一个脚本调试工具,Microsoft的这个工具只支持IE.在Win2000的安装包中包括了这一个文件.但在2000以后的版本,XP,WIN2003中都没有包含,但你可以从以下的Microsoft的站点的地址中...

    一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

    在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案 百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 &lt;!Doctype html&gt; ...

Global site tag (gtag.js) - Google Analytics