???????????????DOM????????JS??????????????????????????IE???????????????IE6?У????? javascript object?????jscript??????mark-and-sweep??????????javascript object????object(????native object??vbscript object???)?????????IE 6????????????????????????IE 6????????Script Objects???Circular References?????????????????????????????JScript??Native Object(????Dom??ActiveX Object)????Circular References????????????????Native????(????Dom??ActiveX Object)??Javascript???????????????????й?????????????????????bug??IE 7???????????????Fuck?????????Drip???????????????IE8???????????????????????????

 

function Encapsulator(element){
this.elementReference = element;
element.expandoProperty = this;
}
function SetupLeak2(){
var obj=new Encapsulator(document.getElementById("test"));
document.body.removeChild(document.getElementById("test"));
//alert(document.getElementById("test").expandoProperty); ???????
//?????element.expandoProperty ---> obj??????????????
//?????obj.elementReference??element??????????????
//?????????IE6??element?????????棬???????????????GC??????????????????????
document.body.appendChild(obj.elementReference);
}

???????????????????????????????????????????????????????????????????????????дjs????????????????к????????漲?????????????????????????????????????????????????????IE?μ????й?????????????????????

 

var test=function(){
var div=document.getElementById("test");
var i=0;
while((i++) < 20){
(function(index){
var o=document.createElement("p");
o.innerHTML="AAA";
o.onclick=function(){
alert("haha??leap");
}
div.appendChild(o);
o.onclick=null;
div.removeChild(o);
})(i);
}
}
function addEvent(){
var div=document.getElementById("event");
div.onclick=function(){
this.parentNode.removeChild(this);
}
}

???????????γ??????????????????????????????ж?????????div????????????????????????????д???????棬????????test?????? ?棬??????removeChild?????Drip????????????й??????????????onclick?????????null????С??????????????У????? ??????????????removeChild????????????????????й???
????????????????DOM?????????script????????????ο????????????createElement????DOM? ?????????????????в?????js????document.createElement(“<div onclick=’foo();’>”)???????????????IE????Ч???????????????????Drip???????????й???
????var leakMemory=function(){
????for(i = 0; i < 5000; i++){
????var parentDiv = document.createElement("<div onClick='foo()'>");
????}
????}
???????????????????′?????DOM??????????????????????????????????????????????????????????й? ?????????????????????Щ?????????????????Щ????£????????DOM???????????DOM?????????????????У????????????????? ????reflow??????????????????????????????????????~
???????
???????????????????Drip??????????????????????sIEVE??JS Leaps Detector?2????????????й???????????????????????????????????????????????????????????д?????У?????????????????? Щ????????????????й???????????
??????????????????????????????????~~