分类: WINDOWS
2011-08-05 10:45:08
8.4-------------------------------------------
解决了一个内存泄漏,会导致部分dom结构无法释放,请看下面代码
tab.domNode.appendChild(tab.page.domNode);//page的domTree先被附加到了tab上
this._tabChat.addChild(tab);//tab在附加到document._tabChat上,导致page内部的dom无法被释放;
解决办法就是修改顺序:
this._tabChat.addChild(tab);//tab先加到document上
tab.domNode.appendChild(tab.page.domNode);//page再加到tab上;
这种泄漏被称为Cross-Page-Leaks,具体资料请参考:http://blog.csdn.net/tammy_zhu/article/details/6537915
8.4下午---------------------------------------
dojo.connect 需要小心使用:请看如下代码:dojo.connect(null, "__emotionclick", this, "_emotionClick"); 这个会在window上创建一个闭包,包含对自己 emotion (edit plugin)的引用,这个闭包是需要手工删除的,否则就会导致leak;
修改为 this.connect(null, "__emotionclick", "_emotionClick"); 就可以了,emotion是继承自dijit._Widget 这个框架会自动管理他的connect;