IE JScript第3种内存泄漏方式的问题。如果没有人能回答我得上微软那里问了。
http://msdn2.microsoft.com/en-us/library/Bb250448.aspx 
 这篇文章相信大家都看过了,我英文不太好,对第三种泄漏方式有个问题想问。   
 第三种方式叫Cross-Page   Leaks,好像是说往dom里加元素的次序如果不对,就会因为产生临时对象没有释放而内存泄漏。   
 文中给了一例子: 
 function   LeakMemory() 
 { 
 	var   hostElement   =   document.getElementById( "hostElement ");   
 	//   Do   it   a   lot,   look   at   Task   Manager   for   memory   response   
 	for(i   =   0;   i    <   5000;   i++) 
 	{ 
 		var   parentDiv   = 
 			document.createElement( " <div   onClick= 'foo() '>  "); 
 		var   childDiv   = 
 			document.createElement( " <div   onClick= 'foo() '>  ");   
 		//   This   will   leak   a   temporary   object 
 		parentDiv.appendChild(childDiv); 
 		hostElement.appendChild(parentDiv); 
 		hostElement.removeChild(parentDiv); 
 		parentDiv.removeChild(childDiv); 
 		parentDiv   =   null; 
 		childDiv   =   null; 
 	} 
 	hostElement   =   null; 
 } 
 这个例子的确是会泄漏内存,从任务管理器可以看到IE一下就占80M内存,但如果把onClick= 'foo() '去掉,就正常了,任务管理器看到IE只点十几M内存。现在的问题是: 
 1、为什么去掉onClick= 'foo() '就正常了呢?我试过在去掉onClick= 'foo() '后,再加一些别的东西,例如:style= "border:1px   solid   #FF0000 ",   但内存占用都没有明显的增加。   
 2、把onClick= 'foo() '去掉后还有没有内存泄漏?虽然任务管理器里没看到内存占用明显地增加,但可能泄漏量小,看不出来。
------解决方案--------------------onClick = 'foo() ',至少需要个指向函数的指针吧,指针也占用内存空间,所以.... 
 以上是个人意见.
------解决方案--------------------我觉得可能CPU的时间用在初始化函数上了,如果换成下面这样就会比原来的时间快一些。使用下面的方法CPU100%应该已经不是函数的问题了,因为可以看到使用style= "border:1px solid #FF0000 "这个时候也是需要一定的时间,因为生成的量比较大。虽然使用下面的方法会快,但是foo函数如果不定义会出错,也就是说foo函数在下面的例子中是已经初始化了的,所以后面执行会变快 
  <div id= "hostElement ">   
  </div>  
  <script language=javascript>  
 function foo() 
 { 
 } 
 function LeakMemory() 
 { 
 	var hostElement = document.getElementById( "hostElement ");   
 	// Do it a lot, look at Task Manager for memory response   
 	for(i = 0; i  < 5000; i++) 
 	{ 
 		var parentDiv =document.createElement( " <div>  "); 
 			//document.createElement( " <div onclick= 'foo() '>  ");  			 
 			parentDiv.onclick=foo; 
 		var childDiv =document.createElement( " <div>  "); 
 			//document.createElement( " <div onclick= 'foo() '>  ");  			 
 			childDiv.onclick=foo;   
 		// This will leak a temporary object 
 		parentDiv.appendChild(childDiv); 
 		hostElement.appendChild(parentDiv); 
 		hostElement.removeChild(parentDiv); 
 		parentDiv.removeChild(childDiv); 
 		parentDiv = null; 
 		childDiv = null; 
 	} 
 	hostElement = null; 
 	alert( "done ") 
 } 
 LeakMemory(); 
  </script>
------解决方案--------------------m
------解决方案--------------------这个泄露不算什么。你把 
 parentDiv.appendChild(childDiv); 
 hostElement.appendChild(parentDiv); 
 hostElement.removeChild(parentDiv); 
 parentDiv.removeChild(childDiv);   
 这几句注释掉才恐怖呢。离开页面内存都不能释放。连刷几次就占光你内存了。