基于ExtJS 3.1内存回收改进

来源:互联网 发布:淘宝深夜食堂视频全集 编辑:程序博客网 时间:2024/05/01 08:52

使用了ExtJS 3.1并且更改了模块加载方式之后,我的OPOA内存回收有所改进,记录一下概要:

1、不用autoload{url:url, scripts:true}的方式,而使用eval(response.responseText)方式,这样可以减少一些Orphan Node,使用autoload的话Tab中被load的那个Node无法释放而成为Orphan Node;

2、在关闭Tab时,Tab的beforedestroy要把Tab里面的Component给destroy掉,并且要十分注意destroy的顺序,然后set null,其它没有destroy()方法的对象直接set null,最后try CollectGarbage();

3、左侧的TreePanel的tools中refresh很有用,tree的root.reload()之后IE可能会重新渲染页面,如果之前页面渲染占用的内存多话则可能释放多出的内存占用(觉得类似IE6的窗口最小化,这里只是凭感觉,没看代码也没看IE的渲染机制);

4、GridPanel组件的有个<A style="TOP: 0px;LEFT: 0px" class="grid3-focus" tabIndex=-1 id=...></A>关闭Tab之后会成为Orphan Node,再打开一个包含GridPanel的Tab之后就没了,但是还会重新生成一个id不同的;

5、非IE浏览器下右键菜单和浏览器右键菜单有冲突。




sIEve看内存占用: