ext window 速度优化

1 篇文章 0 订阅
1 篇文章 0 订阅

关闭时,尽量使用hide事件,把new Ext.Window()设置为全局对象,在要调用 的界面进行创建一次后,把创建对象变量保存起来,以便下次使用,只对数据做操作。


CPC.WFBILL = Ext.extend(CPC.BaseForm,{
    selm:null,
    procs:null,
    ClassName: null,
    formclass:null,
    init: function(){
        CPC.WFBILL.superclass.init.call(this);
        try {
            var objconf={};
            if(this.procs)
                objconf = {operright:this.procs.operright};
            this.billObj=null;
            if(this.formclass != null){
                this.billObj= this.formclass;
            }else{
                this.billObj= eval('new '+this.ClassName+'(objconf)');
            }
        }catch(e){alert("脚本加载失败,请检查网络连接或刷新浏览器!"+e.message)}
        var panel=this.billObj.getPanel();
        var bh=document.body.clientHeight*0.9;
        if(bh<500)bh=500;
        this.win=new Ext.Window({
            //width:920,
            modify by daiwei. 2011-05-23.修改点击单据号弹出框宽度.
            width:'90%',//mainForm.tabPanel.getSize().width-120,            
            maximizable:true,
            animateTarget:true,
            draggable:false,
            expandOnShow:false,
            monitorResize:false,
            resizable:false,
            //maximized:true,
            height: 570,
            title: this.selm.get('objname'),
            layout:'fit',
            modal:true,
            buttons:[{text:'取 消',scope:this,handler:function(){this.win.hide()}}],
            items:panel,
            closeAction:'hide',
            listeners : {
                    scope : this,
                    'beforeshow' : function(a,b) {
                        if(this.formclass == null){
                                this.billObj.is_billwf=true;
                                this.billObj.selectFirstRow =true;
                                this.billObj.setSqlWhere(this.billObj.pkFieldName+"= "+ this.selm.get('objid'));
                                this.billObj.search();
                            }
                    },/*'show':function(){
                            billObj.panel.setActiveTab(billObj.wfPanel);
                    },*/'maximize':function(win){
                        win.doLayout();
                    },'hide':function(){
                        if (this.callback)
                            this.callback.call(this);
                    }
                }
        });

       if(panel.topToolbar)
            this.disableBar(panel.topToolbar)  
    },
    search_data:function(ClassName,selm,formclass){
        var wftempid_new=selm.data['wftempid'];
        var wftempid_old=this.selm.data['wftempid'];
        this.ClassName = ClassName;
        this.selm =selm;
        this.formclass=formclass;
        this.win.setTitle(this.selm.get('objname'));
        if(wftempid_new != wftempid_old || this.formclass != null){
            try {
                var objconf={};
                if(this.procs)
                    objconf = {operright:this.procs.operright};
                this.billObj=null;
                if(this.formclass != null){
                    this.billObj= this.formclass;
                }else{
                    this.billObj= eval('new '+this.ClassName+'(objconf)');
                }
            }catch(e){alert("脚本加载失败,请检查网络连接或刷新浏览器!"+e.message)}
            var panel=this.billObj.getPanel();
            this.win.remove(this.win.items.items[0]);
            this.win.add(panel);
            this.win.doLayout();
        }
    },
    //禁用工具栏按钮
    disableBar: function(bbar){
        if(bbar.items){
            bbar.items.each(function(button) {
                if(button.setDisabled)
                    button.setDisabled(true);
            }, this);
        }else{
            for (var i = 0; i < bbar.length; i++) {
                if(bbar[i].setDisabled)bbar[i].setDisabled(true);
            }
        }
    },
    getPanel: function(){
        return this.win;
    });

  调用对象方法:

var self = this;

    if(typeof this.wfbill == 'undefined'){
                                                this.wfbill = new CPC.WFBILL({
                                                    ClassName : confobj.formclass,
                                                    selm : selm,
                                                    formclass:formclass,
                                                    callback:function(){
                                                         self.refresh2();
                                                    }
                                                });
                                        }else{
                                            this.wfbill.search_data(confobj.formclass,selm,formclass);
                                        }
                                        this.wfbill.getPanel().show();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qujianjiutian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值