Ext Desktop의 메모리 성능에 대한 논의

2730 단어 windowsIEext
Ext의 데스크톱 예는 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에서 테스트를 했는데 더 이상 메모리가 증가하는 상황이 나타나지 않았고 고립된 노드도 기본적으로 정확하게 방출되었다.
다음은 효과도입니다.
이런 생각이 옳은지, 아니면 이 문제를 해결할 수 있는지, 아니면 다른 견해를 제시할 수 있는 사람이 있는가.

좋은 웹페이지 즐겨찾기