论坛首页 Web前端技术论坛

怎么解决EXT 的tabpanel里面插入iFrame内存释放的问题

浏览 10321 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-06  
程序主页面里面需要动态创建标签页,我在tabpanel里面用iframe载入其它的页面,但是标签页关闭以后,IE的内存无法释放,有时刷新主页面有的时候内存也释放不了。只有当IE最小化的时候内存才回收,重新打开一个刚才关闭的标签页,IE的内存还是继续增加,而且每次增加至少7-8M,如果不断关闭含iframe的标签页和打开,IE的内存一直增长上去。
有没有遇到同样问题的,帮助一下。
   发表时间:2007-12-06  
这个问题已经解决过了,是这样的:

mainPanel.on('beforeremove',Divo.fixIFrame.createDelegate(this),this);
。。。
Divo = ...
// 防止IFRAME销毁后仍然占用内存
// Thanks: http://extjs.com/forum/showthread.php?t=11406
fixIFrame : function(o, p) {
var iFrame = p.getEl().dom;
if (iFrame.src) {
iFrame.src = "javascript:false";
}
},

如果有问题,请参见:
http://extjs.com/forum/showthread.php?t=1355
0 请登录后投票
   发表时间:2007-12-06  
按照2楼的方法测试了一下,还是不行,不能释放内存。
0 请登录后投票
   发表时间:2007-12-06  
这个方法我测试过,应该可以的。
0 请登录后投票
   发表时间:2007-12-07  
我使用的方法是使用扩展的Iframe组件
然后每次关闭的时候都调用它的destroy方法
Ext.ux.IFrameComponent = Ext.extend(Ext.BoxComponent, {
	onRender : function(ct, position) {
		this.el = ct.createChild({tag: 'iframe', id: 'iframe-'+ this.id, frameBorder: 0, src: this.url});
	}
});

另外关于IE最小化才能回收内存这个是Windows和浏览器自身的Bug
和Ext无关
0 请登录后投票
   发表时间:2008-06-02  
大哥 我也在用这个Ext.ux.IFrameComponent组件
如何调用它的destroy方法?
在beforeremove事件里头?

给个完整些例子行不?
0 请登录后投票
论坛首页 Web前端技术版

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