ExtJs 4.x Ajax简单封装

/**
 * Ajax 请求
 */
Ext.define("SinoCloudAjaxRequestClass", {
    constructor : function () {
        var me = this;
        var viewport = me.getViewPort();
        if(viewport){
            window.sinoCloudAjaxRequestClassLoadingMak = new Ext.LoadMask(viewport, {msg:"处理中..."});
        }
    },
    request : function (method,param, url, func,anotherFunc) {  //用于执行ajax请求,其中,func为第一个回调方法,一般用于执行成功提示,可以使用该类的commonPrompt,也可以直接处理成功请求后的业务,anotherFunc用于处理请求成功后执行的业务,可选
        var me = this;
        me.showViewportLoading();
        Ext.Ajax.request({
            url: url,
            params: param,
            method: method,
            success: function (response, options) {
                me.hideViewportLoading();
                if(func){
                    func(response, options,anotherFunc);
                }else{
                    Ext.Msg.alert(‘error‘, ‘error...did not define ajax callback function...‘);
                }

            }, failure: function (response, options) {
                me.hideViewportLoading();
                Ext.Msg.alert(‘错误‘, ‘系统错误,请稍候再试!‘);
            }
        });
    },get: function (param, url, func,anotherFunc) {
        var me = this;
        me.request("get",param,url,func,anotherFunc);
    }, post: function (param, url, func,anotherFunc) {
        var me = this;
        me.request("post",param,url,func,anotherFunc);
    },commonPrompt : function (response, options,anotherFunc) {  //一般提示
        if(anotherFunc){
            anotherFunc(response,options);
        }
        var text = response.responseText;
        if (text) {
            text = text.trim();
            var json = Ext.decode(text);
            var success = json.success;
            if (success) {
                Ext.Msg.alert(‘提示‘, "操作成功!");
            } else {
                var msg = json.msg;
                if(msg){
                    Ext.Msg.alert(‘提示‘, msg);
                }else{
                    Ext.Msg.alert(‘提示‘, "操作失败!");
                }
            }
        } else {
            Ext.Msg.alert(‘提示‘, "系统错误...");
        }
    },getViewPort : function () {
        return Ext.getBody();
    },showViewportLoading : function () {
        if(sinoCloudAjaxRequestClassLoadingMak){
            sinoCloudAjaxRequestClassLoadingMak.show();
        }
    },hideViewportLoading : function () {
        if(sinoCloudAjaxRequestClassLoadingMak){
            sinoCloudAjaxRequestClassLoadingMak.hide();
        }
    }
});

使用方式 :

var ajax = Ext.create("SinoCloudAjaxRequestClass");
var param = {
     id : 1
};
var url = "demo.action";;
ajax.post(param,url,function(response, options){

});

或者 : 

ajax.post(param,url,ajax.commonPrompt,function(response, options){

});

ajax.commonPrompt 会自动验证返回的json的success并给出提示
时间: 2024-11-12 13:58:34

ExtJs 4.x Ajax简单封装的相关文章

ajax简单封装

var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //创建XMLHTTP对象,考虑兼容性 xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5&j=10", true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓

Ajax 简单封装

1 //原生Ajax 代码: 2 3 var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //创建XMLHTTP对象,考虑兼容性 4 xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5", true); //“准备”向服务器的AJAXTest.ashx发出Pos

原生态AJAX详解和jquery对AJAX的封装

AJAX: A :Asynchronous [eI`sinkrenes] 异步 J :JavaScript    JavaScript脚本语言 A: And X :XML 可扩展标记语言 AJAX现在貌似已经无处不在了,其实自从web2.0的广泛发展带来了AJAX的发展.我们目前的客户端可以分为胖客户端(C/S).廋客户端(B/S), PS:胖客户泛指客户端承担一部分计算工作减轻服务器压力.典型应用 :C / S架构的客户端.瘦客户泛指客户端不承担任何计算工作,完全依赖服务器端计算.典型应用:B

JS学习之ajax相关知识和ajax的封装

XMLHttpRequest对象 1. XMLHttpRequest用于在后台与服务器交换数据,是AJAX之所以能对网页进行局部刷新的核心,同时Ajax技术离开了XMLHttpRequest对象将失去与服务器异步通信的能力. 2:不同的浏览器创建XMLHttpRequest对象使用的语句是不同的. 3:3.XMLHttpRequest对象方法与属性 方法 描述 open(method,url,[async],[username],[password]) 规定请求的类型.URL 以及是否异步处理请

webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部署

本文为大家讲解的是webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部属,感兴趣的同学参考下 ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架. jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签. B

用XHR简单封装一个axios

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible"

JDBC简单封装

/** * JDBC简单封装 * 需要借助FastJsonUtil可以参考上一篇 * @author huangxincheng * */ public class BaseDao { private static String URL; private static String USERNAME; private static String PASSWORD; private static String DRIVER; private  Connection connection; priv

对系统网络请求进行简单封装

AGConnectionNet对系统网络请求进行简单封装,可便利的进行网络请求,并将数据解析与网络请求封装在同一方法下,使用更加便利(JSON 解析采用自身解析方法, XML 解析采用第三方 ReadXML 进行解析). 方法具体参数说明 初始化方法:/*** 类方法,实例化当前数据请求对象 (单例)** @return 当前请求对象*/+ (instancetype)shareRequestData; 仅进行请求数据方法/*** 请求数据 (session 请求)** @param URLSt

iOS sqlite 增删改查 简单封装(基于 FMDB)

/** *  对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * *  基于 FMDB * *  操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整体进行操作 * *  根据 model 对象自动建表,字段类型只支持 NSString , NSIteger , float * *  用到 runtime 运行时获取 model 属性 * */ 1 // 2 // AGDatabaseManager.h 3 // 4 // Created by