把1000条数据一次性提交给后台

 

以上代码存在的一个问题是你使用了同步的 AJAX 请求,这会导致整个浏览器 UI 被卡住,包括直接修改进度条 CSS 的操作也无法响应。此外,你使用了 for 循环来循环提交请求,这样会在瞬间向后台发送大量的请求,可能会导致后台被卡死。

为了解决这些问题,你可以考虑使用异步的 AJAX 请求,并使用回调函数来处理每个请求的结果。此外,你还可以考虑使用队列来依次处理每个请求,以确保不会同时向后台发送过多的请求。

具体来说,你可以使用 jQuery 的 .ajax() 函数来发送异步的 AJAX 请求,然后在每个请求的回调函数中处理请求结果。在处理完当前请求后,你可以将其从队列中删除并继续处理下一个请求。以下是一个简单的示例代码:

var uploadQueue = [];  
  
function uploadNext() {  
  if (uploadQueue.length > 0) {  
    var item = uploadQueue.shift();  
    $.ajax({  
      type: "POST",  
      contentType: 'application/json',  
      url: "xxxxxx",  
      dataType: 'json',  
      success: function (res) {  
        // 处理请求结果  
        if (res.msg == "error") {  
          result = false;  
        } else {  
          uploadNext();  
        }  
      },  
    });  
  }  
}  
  
$("#btn_UpLoad").on('click', function () {  //按钮响应  
  var result = true;  
  for (var i = 0; i < 1000; i++) {  
    uploadQueue.push(i);  
  }  
  uploadNext();  
});

在这个代码示例中,我们首先定义了一个数组 uploadQueue,用于存储要上传的数据。在按钮点击事件中,我们将每个数据项添加到 uploadQueue 数组中。然后我们调用 uploadNext 函数来处理队列中的请求。uploadNext 函数会从队列中取出第一个请求,并使用 $.ajax() 函数发送异步的 AJAX 请求。在每个请求的回调函数中,我们处理请求结果,并调用 uploadNext 函数来处理下一个请求。如果请求失败,我们将 result 设置为 false,并退出循环。如果所有请求都成功完成,我们将 result 设置为 true。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值