Extjs6关于Ajax和form表单提交以及store请求session超时的处理方法

对于Store的处理

每个store配置的时候,配上load监听,加载时处理:
usrStore : {
    model : 'App.model.Usr',
    autoLoad : false,
    proxy : {
        type : 'ajax',
        url : 'usr/getUsrs.do',
        reader : {
            rootProperty : 'data'
        }
    },
    listeners:{
        load : 'onStoreLoad'
    }
}
onStoreLoad : function(store, records, successful, operation, eOpts) {
    if (!successful) {
        //直接提示系统维护
    } else {
        this.validSessionByStore(this, operation);
    }
},
validSessionByStore:function(comp,operation){
    var resp = operation.getResponse();
    if (resp) {
        var rst = Ext.decode(resp.responseText || {});
        if (!rst['session']) {//session超时
            this.reLogin(comp);//弹出登录框,重新登录
            return false;
        }
    }
    return true;
}

封装官方基本的success和failure两个方法

不管是ajax还是form的submit都有success和failure两个回调方法,所以要对这两个回调进行疯狂,方便ajax和submit的调用:
success:function(data,comp,_success,_failure,ctl){
        if (!data['success']) {//失败
            this.failure(data, comp,_failure);
        } else if (data['session']) {//成功
            if (Ext.typeOf(_success) === 'function') {
                _success(data, comp);
            }
        } else { //session超时
            this.failure(data, comp,_failure);
            this.reLogin(comp);//弹出登录框,重新登录             
        }
    },
    failure:function(data,comp,_failure){
        if (Ext.typeOf(_failure) === 'function') {
            _failure(data, comp);//执行自定义失败该执行的方法
        } else {
            //直接提示系统维护
        }
    },

对于Ajax的处理

ajax : function(uri ,params, success, failure ,ctrl) {
        var me = this;
        return Ext.Ajax.request({
            url : uri,
            params : params,
            async : false,
            success : function(response, opts) {
                var result = Ext.decode(response.responseText) || {};
                me.success(result ,ctrl,success,failure);
            },
            failure : function(response, opts) {
                me.failure(response,ctrl,failure);
            }
        });
    },

对于Form提交的submit的处理

getFormSubmitCfg : function(success, failure, params) {
    var me  =this;
    return {
        params : params,
        submitEmptyText : false,
        success : function(form, action) {
            me.success(action.result ,form,success,failure);
        },
        failure : function(form, action) {
            me.failure(action.result ,form,failure);
        }
    };
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值