Ext的Desktop例子在IE下始终存在内存不停增长的问题,每打开一次窗口并关闭过后,采用sIEve进行测试,都会产生一些孤立节点,即这些几点无法被正确删除,在Ext3.0中有也这个问题。
在测试了下这个例子过后,发现这可能是由taskbar引起的。在创建的时候 win会有一个属性 win.taskButton用来联系任务栏中的任务按钮,而任务按钮taskButton有一个属性taskButton.win来记录相关联的窗口。这样导致互相引用,在删除的时候可能都没有得到正确删除。
为了验证这个想法,我注释掉了关于添加Desktop.js中taskButton的代码,即先不添加taskButton,从第25行到93行如下所示
function markActive(win){
if(activeWindow && activeWindow != win){
markInactive(activeWindow);
}
//taskbar.setActiveButton(win.taskButton);
activeWindow = win;
//Ext.fly(win.taskButton.el).addClass('active-win');
win.minimized = false;
}
function markInactive(win){
if(win == activeWindow){
activeWindow = null;
//Ext.fly(win.taskButton.el).removeClass('active-win');
}
}
function removeWin(win){
//taskbar.removeTaskButton(win.taskButton);
layout();
}
function layout(){
desktopEl.setHeight(Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());
}
Ext.EventManager.onWindowResize(layout);
this.layout = layout;
this.createWindow = function(config, cls){
var win = new (cls||Ext.Window)(
Ext.applyIf(config||{}, {
manager: windows,
minimizable: true,
maximizable: true
})
);
win.render(desktopEl);
//win.taskButton = taskbar.addTaskButton(win);
win.cmenu = new Ext.menu.Menu({
items: [
]
});
//win.animateTarget = win.taskButton.el;
win.on({
'activate': {
fn: markActive
},
'beforeshow': {
fn: markActive
},
'deactivate': {
fn: markInactive
},
'minimize': {
fn: minimizeWin
},
'close': {
fn: removeWin
}
});
layout();
return win;
};
在这之后,在IE7下,用sIEve在Ext3.0下进行测试,没有再出现内存增长的情况,孤立节点基本上也得到了正确释放。
下面是一些效果图。
有没有其他人能验证这种想法是否正确,或者能够解决这个问题,或是提出一些其他的看法。
- 大小: 84.2 KB
- 大小: 94.7 KB
分享到:
相关推荐
Ext-Desktop
Ext4 desktop ,有图标拖动,桌面挂件,右键,换背景,换主题,不规则图片,等一系列拓展功能,代码无错,无后台代码,分不够的可联系我。
一个EXT桌面系统DEMO,参考样例,一起学习!
ext desktop 综合例子 你可以学到很多哦
NULL 博文链接:https://liujianeye.iteye.com/blog/1161981
最近在开发Ext的桌面程序结合struts2自带的json序列化,如需要了解更深请留言
该项目是通过改装desktop插件包下的app.js和desktop.js完成的桌面化项目!采用的动态加载的方式、100%保证能在myeclipse环境下跑起来!
该补丁包给几乎所有存在泄露的组件做了修正。 虽然补丁所描述的环境是ie,但实质上2.2在任何浏览器上都因为事件模型和组件本身销毁方法考虑不周的缘故使内存不断增长。
ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题
ext桌面系统 模仿京东后台
NULL 博文链接:https://caizhenyao.iteye.com/blog/1328184
EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT...
ext内存泄露补丁文件!! ext内存泄露补丁文件!! ext内存泄露补丁文件!!
asdext extext extext extext extext extext extext extext extext extext extext extext extext extext ext
ext资料 ext资料 ext资料 ext资料 ext资料
ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ext使用ex
Ext解决题目(内存分页+导出Excel) Ext解决题目(内存分页+导出Excel) Ext解决题目(内存分页+导出Excel) Ext解决题目(内存分页+导出Excel)
ext3.0ext3.0ext3.0ext3.0ext3.0ext3.0
多年Ext项目开发后,总结的经验,希望对大家有益。
ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记...