永发信息网

如何在一个循环执行ajax方法里面嵌套的ajax方法

答案:5  悬赏:70  手机版
解决时间 2021-11-20 18:01
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-11-20 10:00
如何在一个循环执行ajax方法里面嵌套的ajax方法
最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-11-20 10:30
for循环执行很快,而ajax执行很慢,这个时候会出现很多问题.

所以,不要用for循环去执行ajax.

而ajax有自己的安全机制, 你在一个回调函数中再次提起n次的ajax,会有很多不可预料的问题.

建议还是分开,或是自己写方法实现!追问第二次执行的ajax必须要用到循环里面的参数,这分开了怎么整?function a()是在页面加载完就执行的函数追答如果你请求的url是一个固定值,就没必要循环请求,一次性请求到这个URL上,由后台负责逻辑运算是很简单的事情.

返回一个json数据,再由前台去负责数据分配也比较容易维护!追问纠结的是url传送的参数是不定的呀,传送的参数是根据第一个ajax请求得到的值循环来的,参数不定返回的值也就不定了追答如果是这样,你的整个程序设计的逻辑可能出问题了!

如果一个页面大面积的使用ajax去请求服务器,一方面客户端肯定会很卡, 另一方面服务器端处理也浪费资源.

建议更改程序的逻辑!
全部回答
  • 1楼网友:拾荒鲤
  • 2021-11-20 14:17
多调试啊,你怎么知道没有执行
  • 2楼网友:躲不过心动
  • 2021-11-20 12:51
我刚也遇到这个问题,我试过了一些办法,最后我是用递归解决了问题
  • 3楼网友:千夜
  • 2021-11-20 12:33
用js的闭包处理这个问题很合适。闭包的用法搜索一下就明白。
  • 4楼网友:孤独入客枕
  • 2021-11-20 11:20
这种问题 可以这样做,
将 ajax 请求封装 成一个函数。
将循环中的参数 传入函数 执行,
这样可以 避免 每次执行的ajax 可能都是循环的最后一次
每次循环的时候 由于是异步处理,(同步请求不会有这样的问题)
当ajax 准备执行的时候 ,去读取循环中的参数,
而这个时候 循环的值已经不最开始的那个了 ,
,我们将这个值保存在参数中, 而这样,
ajax 去请求的时候 读取的是参数值, 而不是循环的值

function a(){
$.ajax({
success:function(data){
for(循环data){
//这样可以避免 循环执行完了 ajax 还没执行的问题
fn_ajax(data[i])
}
},
});
function fn_ajax(data){
$.ajax({
success:function(){
}
});

}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯