首页 > 培训课堂 > 互联网设计兵团 >通过简单的AJAX递归请求进行多任务的数据自动处理
来源:设计兵团

通过简单的AJAX递归请求进行多任务的数据自动处理

通过简单的AJAX递归请求进行多任务的数据自动处理
28 0 收藏 (0) 已有 0 人付费观看 我要交作业
我要学习 0 兵币

点赞收藏

0

今天在处理图片时,需要批量对图片进行压缩、加水印等操作,因为程序自动处理次数比较多,图片比较少还好,当有大量图片的时候,系统处理时间会很长,这时异步自动多次请求就是一个比较好的解决方案。


先定制个结构,JS代码如下:

var data = {
'status'      : 1,
'code'        : 0,
'next_url'    : "www.xxx.com",
'info'        : '开始进行图片解压...'
};

这即是初始化设置,也是后端返回的JSON串标准结构,重要的参数有两个,status是状态,next_url是下次请求的地址,这个是重点,服务端每个处理方法都返回下次请求地址。


接下来是递归方法recursion:

function recursion(data){
$.ajax({
url: data.next_url,
dataType: "json",
success: function (data) {
if (data.status == 1) {
$('.aotuinfo').append('<li class="text-info">'+ data.info +'</li>');
//递归请求,这里调用自己
recursion(data);
} else {
if(data.status == 99){
//流程正常结束
$('.aotuinfo').append('<li class="text-success">'+ data.info +'</li>');
window.location.reload();
} else {
//出现错误终止
$('.aotuinfo').append('<li class="text-error">'+ data.info +'</li>');                                    
}
}
},
error: function () {
  //出现错误终止
  $('.aotuinfo').append('<li class="text-error">服务器出错!</li>');
}
});
}

简言之,通过不断调用自身进行不间断请求,直到所有任务处理完毕。后端代码最后的任务处理成功后返回status=99,用于结束递归调用。


以上就是最简单的实现,也可以在后端任务中加入分页处理,适配大量数据处理等等,灵活加入各种任务进行数据的批量处理。

..




互联网设计兵团互联网设计兵团
发评论奖兵币,看教程下模型 登录 注册
Contents昨日... 已有...人提现 本月提现冠军... 本月充值冠军... 最新动态:...
...年创办 ...万会员 ...万主题 ...个展会 ...个模型 ...个教程 ...位设计师 ...个展览工厂 ...个展览公司 ...个展商 ...个主办 ...个展馆
2024-04-26 13:00:00--3.145.105.105--2024-04-26 18:00:00