首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

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

var data = {

'status' : 1,

'code' : 0,

'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(''+ data.info +'');

//递归请求,这里调用自己

recursion(data);

} else {

if(data.status == 99){

//流程正常结束

$('.aotuinfo').append(''+ data.info +'');

} else {

//出现错误终止

$('.aotuinfo').append(''+ data.info +'');

}

}

},

error: function () {

//出现错误终止

$('.aotuinfo').append('服务器出错!');

}

});

}

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180131G1GJ1U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券