|
Has anyone gotten any farther with memory
reclemation in IE?
I added a destroy() method to the dynlayer
object.
See end of this doc for the results of
testing..
I then placed a call in
DynLayer.prototype.deleteAllChildren=function()
{
for (var i in this.children) { this.children[i].deleteAllChildren(); this.children[i].invokeEvent('delete'); DynAPI.removeFromArray(this.dyndoc.all,this.children[i],true); if (is.ns && this.children[i].elm) { if (!this.doc.recycled) this.doc.recycled=[]; this.doc.recycled[this.doc.recycled.length]=this.children[i].elm; } DynLayer.deleteElement(this.children[i]); this.children[i].parent=null; this.children[i].isChild=false;
this.children[i].destroy(); //<------- da call
-----------------------------------------------------//
}
this.children=[]; }; the destroy function is as follows:
DynLayer.prototype.destroy=function(){
status="Destroy called "+(++calledtimes)+" times"; //delete all properties and function of the DynLayer object this.removeAllEventListeners(); delete this.id; delete this.x; delete this.y; delete this.w; delete this.h; delete this.bgColor; delete this.visible; delete this.z; delete this.bgImage; delete this.children; delete this.parent; delete this.isChild; delete this.created; delete this.html; delete this.bgImage; delete this.elm; delete this.doc; delete this.css; delete this.unassigned; delete this.nullCount; delete this.createElement; delete this.deleteElement ; delete this.assignElement; delete this.assignChildren; delete this.flagPrecreate; delete this.flagDeleteChildren; delete this.isDynLayer ; delete this.getClass; delete this.toString; delete this.addChildID; delete this.addChild; delete this.removeChild; delete this.removeFromParent; delete this.deleteChild; delete this.deleteAllChildren; delete this.deleteFromParent; delete this.getInnerHTML; delete this.getOuterHTML; delete this.setStyle; delete this.moveTo; delete this.moveBy; delete this.setX; delete this.setY; delete this.getX; delete this.getY; delete this.getPageX; delete this.getPageY; delete this.setPageX; delete this.setPageY; delete this.setVisible; delete this.getVisible; delete this.setZIndex; delete this.getZIndex; delete this.setBgImage; delete this.getBgImage; delete this.setBgColor; delete this.getBgColor; delete this.setHTML; delete this.getHTML; delete this.setSize ; delete this.setWidth; delete this.setHeight; delete this.getWidth; delete this.getHeight; delete this.getContentWidth; delete this.getContentHeight; delete this.setClip; delete this.getClip; delete this.invokeEvent; // delete this.destroy; }; Results of testing:
IE5.5
Win98 (NOT SE)
-with destroy
before loading site :4,392 after loading site :7,960 after unloading site:8,448 -without destroy
before loading site :4,420 after loading site :7,900 after unloading site:7,780 As you can see, the amount of ram INCREASED after
calling deleteAllChildren with the destroy function
Still pluggin at it,
Doug Melvin
P.S.
I have devoted the afternoon to this
problem..
So any feedback/suggestions/comments should be sent
ASAP
Thank y'all
|
- RE: [Dynapi-Help] destory() Doug Melvin
- RE: [Dynapi-Help] destory() Jack_Speranza
- Re: [Dynapi-Help] destory() Doug Melvin
- RE: [Dynapi-Help] destory() Jack_Speranza
