页面框架中,提供一个整体的请求方法来支持整体页面对于请求方法的各种场景,同时可以根据请求的参数完成页面端不同服务的提供。例如页面缓存、请求地址切换、请求间隔时间、同步异步处理、请求类型识别以及差异处理等各种需求的支持。
请求处理
请求处理的过程,依托使用的框架提供的请求方法或者原生的请求方法来完成。主要的过程根据请求的参数填充方法,触发请求之后,根据请求的结果完成相应的处理。包括请求成功、请求失败、请求异常以及成功内部处理等几种处理过程。
请求成功 正常完成请求动作,成功进行响应,可以获取到当前请求的成功结果以及相应数据。利用请求成功处理过程,可以执行成功回调方法来完成自定义业务对应的处理过程。
请求失败 同请求成功响应结果相似,只是不能作为成功响应的结果进行自定义的业务处理,需要根据服务端或客户端提供的失败信息完成处理过程,完善失败情况下的应对机制。
请求异常 框架提供的请求方法或者原生请求方法处理过程由于某种原因无法完成请求动作,根据请求失败的信息进行分析以及处理相应失败之后的执行过程。比如服务端异常、请求参数异常、代码执行错误等不同的情况。
成功内部处理 作为请求成功的分支而存在,由服务端成功响应的结果,判断是否为业务控制的成功或者失败场景。根据判断的结果来进行下一步的处理过程。
代码示例使用JQuery作为前端框架提供的Ajax异步请求方法作为基础。
$.ajax({
url: url,
data: options,
type: requestType
async: async, //设为false就是同步请求
success: function (res) { // 请求成功处理过程
// 判断响应结果是否为空 , 如果为空跳出后续请求处理过程
if (res == null) {
return false;
}
// 判断成功结果中 , 成功内部响应处理
if (res.code == 0) {
// TODO 参数差异处理规则
// 根据请求信息 , 判断当前请求是否提供缓存处理以及全局缓存数据
if(api.cache) {
params[api.cache] = res;
}
// 判断是否需要成功回调 , 并执行成功回调 , 响应结果作为回调方法参数 , 否则直接返回结果
if (successCallback) {
successCallback(res);
} else {
core.alert(core.info, "操作成功");
return res;
}
// 判断成功结果中 , 失败内部失败处理
} else {
// 判断是否需要失败回调 , 并执行失败回调 , 响应结果作为回调方法参数 , 否则直接返回结果
if (failCallback) {
failCallback(res);
} else {
core.alert(core.error, res.message);
return res;
}
}
// 请求异常处理过程
}, error: function (msg) {
core.alert(core.error, "请求异常");
// 判断是否需要失败回调 , 并执行失败回调 , 异常信息作为回调方法参数
if (failCallback) {
failCallback(msg);
}
}
});