<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="Js内存泄漏及解决方案" id="card1">
<p> 游客</p><p>
标题:Js内存泄漏及解决方案<br/>
正文:<br/>
在IE下的JS编程中，以下的编程方式都会造成即使关闭IE也无法释放内存的问题，下面分类给出： 1、给DOM对象添加的属性是一个对象的引用。范例： var MyObject = {}; document.getElementById(’myDiv’).myProp = MyObject; 解决方法： 在window.onunload事件中写上: document.getElementById(’myDiv’).myProp = null; 2、DOM对象与JS对象相互引用。范例： function Encapsulator(element) { this.elementReference = element; element.myProp = this; } new Encapsulator(document.getElementById(’myDiv’)); 解决方法： 在onunload事件中写上: document.getElementById(’myDiv’).myProp = null; 3、给DOM对象用attachEvent绑定事件。范例： function doClick() {} element.attachEvent(&quot;onclick&quot;, doClick); 解决方法： 在onunload事件中写上: element.detachEvent(’onclick’, doClick); 4、从外到内执行appendChild。这时即使调用removeChild也无法释放。范例： var parentDiv = document.createElement(&quot;div&quot;); var childDiv = document.createElement(&quot;div&quot;); document.body.appendChild(parentDiv); parentDiv.appendChild(childDiv); 解决方法： 从内到外执行appendChild: var parentDiv = document<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=474&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=474&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=474&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=474&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=474&amp;Page=14">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=474">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=474">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>