论坛首页 Web前端技术论坛

Ext的destroy机制引起的内存问题的分析( 二 )

浏览 11393 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-29  
你查看dom节点的引用数量,会发现很多孤立的节点,这部分节点是不会释放的。
而window本身的泄露又设计到很多其他的组件Element, EventManager,Panel等等,加个destroy方法仅仅是一个临时的处理方法,要根本解决这些泄露问题要fix掉其他组件的bug,window的那些节点是因为被引用而无法释放的.

Ext几乎每个组件在destroy的时候都有内存泄露问题.很多组件的dom在组件destroy根本就没释放绑定事件
举个最简单那的例子Ext.fly就有问题,如果一个组件被destroy掉,而Ext._flyweights还保留着一些dom的引用.
正好最近在做基于ext的opoa的框架,解决了一些组件的bug,等有时间整理一下
0 请登录后投票
   发表时间:2008-04-29  
呵呵,谢谢楼上znjq.
我在整理这些组件的时候才发现你所说的这些问题.
想请教一下,你现在整理那些组件,能否提供一些资料.或者具体一点的解决方案.!
谢谢了!
0 请登录后投票
   发表时间:2008-04-29  
ext已经够不错了
做到这程度不容易啊
0 请登录后投票
   发表时间:2008-07-17  
messagebox弹出增加了很多dom,但关闭时内存和dom都毫无变化,打开一看,原来messagebox没有destroy函数。。。晕
0 请登录后投票
   发表时间:2008-09-05  
问下 孤立节点

还能用  document.getElementById 

吗?

0 请登录后投票
   发表时间:2008-09-05  
不能了



0 请登录后投票
   发表时间:2008-09-05  
我试了 是不行
 
不过还是不知道 怎么分析 孤立节点
0 请登录后投票
   发表时间:2008-09-05  
主贴里写了


http://fins.iteye.com/blog/172891
0 请登录后投票
   发表时间:2008-09-10  
我用的是Ext 2.2

if(this.handleMouseEvents){
       this.el.on("mouseover", this.onMouseOver, this);
       this.el.on("mousedown", this.onMouseDown, this);
}

Ext.Button 里 注释掉这两个事件 就少几个孤立节点

不知道在销毁时 怎么才能删除这两个事件?
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics