`
lei101206
  • 浏览: 3317 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于Ext Desktop的内存性能讨论

阅读更多
    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
分享到:
评论
4 楼 lei101206 2009-07-01  
目前来说,如果不在任务栏中加入相关窗口的关联,基本上是没有问题的。
3 楼 会飞的狗 2009-06-19  
保持关注。desktop确实一直有内存泄露。
2 楼 damoqiongqiu 2009-06-19  
Desktop的性能问题确实比较严重,渲染很费时间。
1 楼 leon1509 2009-06-18  
不懂!貌似很专业,学习中。。。。。。

这个问题应该有不少人关注吧!

相关推荐

    ext desktop

    标签中的“源码”可能是指该博文会讨论Ext Desktop的实现细节,包括如何自定义组件、扩展功能、优化性能等方面。开发者可能会分享如何阅读和理解Ext JS的源代码,以及如何根据项目需求进行定制开发。 4. **工具**...

    EXT_DEMO.rar_DEMO_ext desktop de_ext desktop demo_一起ext

    EXT_DEMO.rar_DEMO_ext_desktop_de_ext_desktop_demo_一起ext这个压缩包文件看起来包含了一个EXT桌面系统的演示示例,旨在供用户参考和学习。EXT桌面系统可能是一种基于Web的用户界面框架,用于构建富互联网应用程序...

    ext desktop 综合例子 你可以学到很多哦

    总之,EXT Desktop 综合例子是一个全面的学习资源,涵盖了EXT JS 框架在构建桌面式Web应用时的各种技术,包括UI设计、数据交互、用户事件处理、性能优化等多个方面。通过深入学习和实践,你可以成为一个熟练的EXT ...

    Ext-Desktop

    【Ext-Desktop】是一个基于...总的来说,通过学习这些资源,你可以掌握ExtJS和Ext-Desktop的基本用法,了解如何构建桌面化的Web应用,并熟练地将Java后端与JavaScript前端相结合,打造高性能、用户体验优良的应用程序。

    Ext4 desktop

    "Ext4 desktop" 是一个专为Linux操作系统设计的桌面环境增强工具,主要针对EXT4文件系统进行了优化,提供了丰富的桌面功能。EXT4是Linux中广泛使用的日志式文件系统,以其高效、稳定和大文件支持而著名。这个项目...

    Ext Desktop+struts2 实例

    Ext Desktop 是一个基于 Ext JS 的桌面应用程序框架,它允许开发者创建具有类似传统桌面应用界面的Web应用程序。Ext JS 是一个强大的 JavaScript 框架,主要用于构建富客户端的 Web 应用,提供丰富的组件库和优雅的...

    ext2.2的内存泄漏补丁

    总的来说,EXT2.2的内存泄漏补丁是一个关键的更新,它提升了EXT2.2框架的稳定性和性能。对于依赖EXT2.2构建的应用程序,应用这个补丁至关重要,可以有效防止因内存泄漏导致的性能下降和用户体验恶化。在日常开发中,...

    ExtJS桌面化(desktop)插件Demo项目

    3. 动态加载技术,通过`Ext.Loader`优化应用性能。 4. 配合myeclipse进行Web应用的开发和调试。 5. 文件"demo"中的实例代码,展示了如何实际应用桌面化插件创建用户界面。 学习并实践这个项目,开发者可以掌握构建...

    ext-desktop

    标题“ext-desktop”可能指的是EXTJS的一个桌面应用项目,EXTJS是一个流行的JavaScript库,用于构建富客户端Web应用程序。EXTJS提供了丰富的组件库,包括数据绑定、图表、表格、窗体等,使得开发者能够构建功能强大...

    ext漂亮的桌面系统2.0

    此外,为了优化性能,可能还会运用EXT的分页、延迟渲染和虚拟滚动等技术。 总的来说,EXT 漂亮的桌面系统2.0是一个结合了EXT JS组件库和Bootstrap前端框架的Web应用,其目的是为用户提供一个与京东后台相似的高效...

    EXT-desktop+struts2

    EXT-desktop 是一个基于 ExtJS 的桌面应用程序框架,它允许开发者创建具有类似桌面应用风格的Web应用,提供丰富的用户界面和交互体验。Struts2 是一个非常流行的 Java Web 框架,用于构建 MVC(Model-View-...

    ext内存泄露的两个补兵

    通过重写源码以增强内存管理,以及利用内存分析工具定位问题,可以有效地解决EXT内存泄露,提升应用的性能和稳定性。在实践中,结合良好的编程习惯和内存管理策略,将有助于构建高效且健壮的EXT应用。

    ext-ms-win-gdi-desktop-l1-1-0.dll

    ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题

    Ext性能优化总结

    ### Ext性能优化总结 在多年的Ext项目开发过程中,积累了丰富的经验与技巧,下面将这些关键的知识点进行详细的阐述,希望能为同行提供有价值的参考。 #### 一、架构优化:One Page One Application模式 在传统的...

    ext.net Desktop

    通过深入学习EXT.NET,开发者可以创建出功能强大且用户体验良好的Web应用,而"EXT.NET Desktop"就是一个生动的示例,展示如何将EXT.NET的技术优势转化为实际应用。无论是新手还是有经验的ASP.NET开发者,都能从中...

    ext内存泄露补丁文件!!

    "ext内存泄露补丁文件"指的是EXTJS框架中针对内存泄露问题的修复补丁。EXTJS是一个流行的JavaScript库,用于构建富客户端应用程序,其组件化的设计使得开发者能够创建复杂的用户界面。然而,由于JavaScript的异步...

    ext4.0中文文档

    EXTJS文档则是关于EXT JavaScript库的相关资料,它是一个用于构建桌面级Web应用的富客户端框架,与EXT4文件系统本身并无直接关联,但可能在构建基于EXT4的管理界面时有所帮助。 总之,EXT4.0中文文档是理解、管理和...

    Ext4研究与性能分析

    ### Ext4研究与性能分析 #### 1. Ext4日志文件系统概述 Ext4(第四扩展文件系统)是Linux操作系统中广泛使用的一种高性能文件系统,它是Ext3的改进版本,旨在提供更好的性能、可靠性和扩展性。Ext4支持更大的文件...

    Windows读取Ext4分区的工具 Ext2Read

    4. **EXT4 extent支持**: EXT4引入了extent的概念,以优化大文件的存储,提高性能。Ext2Read能够正确解析EXT4分区中的extent,确保文件访问的准确性。 5. **递归拷贝**: 在需要备份或迁移数据时,用户可以使用Ext2...

Global site tag (gtag.js) - Google Analytics