AJAX:
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 知启蒙AJAX采用面向RMI的概念设计,通过指定类和方法,传入参数对应方法的参数,通过RMI访问JAVA类的方法获取执行结果。
一、调用成功,回调函数(无参数的方法)
1、定义一个AJAX调用函数,设置类名或类别名、类方法和回调函数,然后执行
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
二、调用成功,回调函数(带参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、通过ajax.addParam();设置参数,参数个数和类型要和后端对应,支持字符串和基本类型 3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
2、通过ajax.addParam();设置参数,参数个数和类型要和后端对应,支持字符串和基本类型 3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
三、调用成功,显示到元素中(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类名或类别名、类方法和回调函数,然后执行
2、在页面上设置点击执行函数,把结果放置到Z("#"+id)中
2、在页面上设置点击执行函数,把结果放置到Z("#"+id)中
四、调用成功,加载器,后端等待8秒(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、通过ajax.setLoading(document, true);设置全屏加载器且遮罩,然后执行
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
2、通过ajax.setLoading(document, true);设置全屏加载器且遮罩,然后执行
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
五、调用成功,指定加载器元素,后端等待8秒(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、通过ajax.setLoading("testLoading2");设置在testLoading2上显示加载器无遮罩,然后执行
3、如果需要遮罩层,设置为ajax.setLoading("testLoading2", true); 4、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
2、通过ajax.setLoading("testLoading2");设置在testLoading2上显示加载器无遮罩,然后执行
3、如果需要遮罩层,设置为ajax.setLoading("testLoading2", true); 4、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
六、调用成功,自定义加载器,后端等待8秒(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、通过Z.loading()函数自定义加载器,然后通过ajax.setLoading();设置到Z.Ajax中
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
2、通过Z.loading()函数自定义加载器,然后通过ajax.setLoading();设置到Z.Ajax中
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
七、调用失败(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
八、调用异常(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
九、拦截器,未通过显示未通过信息(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
3、拦截器由Java后端设置,如: @AnInterceptor("chkAjax1") public static void doTestInterceptor(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkAjax1") public class AjaxChk1Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setResponseError("拦截器不通过"); } }
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
3、拦截器由Java后端设置,如: @AnInterceptor("chkAjax1") public static void doTestInterceptor(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkAjax1") public class AjaxChk1Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setResponseError("拦截器不通过"); } }
十、拦截器(同步调用、无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法
2、通过ajax.setSync();设置表示设置成同步等待,同步调用时无需提供回调函数,直接在执行后读出结果即可
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
4、拦截器由Java后端设置,如: @AnInterceptor("chkAjax1") public static void doTestInterceptor(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkAjax1") public class AjaxChk1Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setResponseError("拦截器不通过"); } }
2、通过ajax.setSync();设置表示设置成同步等待,同步调用时无需提供回调函数,直接在执行后读出结果即可
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
4、拦截器由Java后端设置,如: @AnInterceptor("chkAjax1") public static void doTestInterceptor(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkAjax1") public class AjaxChk1Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setResponseError("拦截器不通过"); } }
十一、拦截器,未通过跳转到新页面(无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法和回调函数
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
3、拦截器由Java后端设置,如: @AnInterceptor("chkAjax2") public static void doTestInterceptor2(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkAjax2") public class AjaxChk2Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setRedirectTop(request.getRootPath("/index.htm"), "拦截器要求,正地跳转到首页"); } }
2、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
3、拦截器由Java后端设置,如: @AnInterceptor("chkAjax2") public static void doTestInterceptor2(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkAjax2") public class AjaxChk2Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setRedirectTop(request.getRootPath("/index.htm"), "拦截器要求,正地跳转到首页"); } }
十二、拦截器,未通过跳转到新页面(同步调用、无参数、使用类别名@AnAlias)
1、定义一个AJAX调用函数,设置类类别名、类方法
2、通过ajax.setSync();设置表示设置成同步等待,同步调用时无需提供回调函数,直接在执行后读出结果即可
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
4、拦截器由Java后端设置,如: @AnInterceptor("chkTutorialRedirect") public static void doTestInterceptor2(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkTutorialRedirect") public class AjaxChk2Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setRedirectTop(request.getRootPath("/index.htm"), "拦截器要求,正地跳转到首页"); } }
2、通过ajax.setSync();设置表示设置成同步等待,同步调用时无需提供回调函数,直接在执行后读出结果即可
3、在页面上设置点击执行函数,通过设置callback回调得到responseStatus和responseText
4、拦截器由Java后端设置,如: @AnInterceptor("chkTutorialRedirect") public static void doTestInterceptor2(HttpRequest request) { request.setResponseResult("返回成功信息"); } @AnAlias("chkTutorialRedirect") public class AjaxChk2Interceptor implements Interceptor { @Override public void intercept(HttpRequest request) throws Exception { request.setRedirectTop(request.getRootPath("/index.htm"), "拦截器要求,正地跳转到首页"); } }
AJAX调用参数说明(请求参数十个,响应结果两个)
| 参数 | 值 | 说明 |
| 请求参数 | ||
| contextPath | 默认为空 | 当前上下文环境路径,如/admin,默认为空表示根上下文路径 |
| className | 必须 | 调用的类名或类别名,如ZuiPresenter/com.zhiqim.document.tutorial.ui.ZuiPresenter |
| methodName | 必须 | 调用的类的方法名,如doTestInterceptor |
| async | true | 异常还是同步调用,默认异步,true|false |
| params | [] | 参数数组,可通过addParam();函数设置参数,如addParam("abc"); |
| callback | null | 回调函数或回调elem的id 1、函数的this为Z.Ajax对象,可以通过this.responseStatus和this.responseText获取结果状态和结果文本 2、回调ID时,填写elem的id,即把this.responseText的值填充到elem中,有三种填充方式,见callbackMethod参数 |
| callbackMethod | "html" | 回调ID时的方法,三种"html"|"text"|"val" |
| callScript | true | 是否在AJAX结果的改变重置由data-role的缓存,如Z.Tooltip,Z.Select等,true|false,默认true |
| loading | null | 三种加载器,通过方法setLoading();方法来设置 1、传入Z.loading对象,参数由对象指定,如ajax.setLoading(Z.loading({target: "testLoading3", shadow: true, position: 1})); 2、传入target和是否遮罩,如ajax.setLoading(document, true);或无遮罩ajax.setLoading(document); 3、传入targetId和是否遮罩,如ajax.setLoading("testLoading3", true);或无遮罩ajax.setLoading("testLoading3"); 4、传入一个函数,在加载时回调该函数,如ajax.setLoading(function(){});此方式用于自定义操作 |
| loadingParam | null | 加载器参数,通过方法setLoading();方法来设置,是第二个参数 1、当loading是Z.loading和字符串时表示是否遮罩 2、当#ID时指定的HTML,成功后换回原始HTML |
| 响应参数 | ||
| responseStatus | 0 | 响应状态,0表示成功,601-603表示跳转,其他表示错误 |
| responseText | null | 响应文本字符串,默认是text/plain格式,XML或JSON格式自行转化 |