什么叫同时处理两个ajax请求?

什么叫同时处理两个ajax请求?

为什么要这样做呢?怎样处理两个ajax请求?
因为自己的语言能力有限,没把意思表达清楚,这里我就直接把题目贴出来了
同时发送2个ajax请求, 要求在2个请求都到达的时候执行一个下面这个回调函数

function f(){
    console.log("哎呀, 2个请求都到啦");
}
关注者
49
被浏览
10279
10 个回答
var times = 0;
var somedata = 1;
function f(){
    console.log("哎呀,2 个请求都到啦")
}
$(function(){
    var i;
    for (i = 0; i < 2; i++){
        $.post(
            'test.php',
            somedata,
            function (data) {
                times++
                if (times === 2) f()
            }
        )
    }
})

4 条评论

知乎用户 知乎用户 2 年前
怎么不用defered
知乎用户 知乎用户 2 年前
$.when($.ajax, $ajax).done(function() { balabala })
DreamPiggy
DreamPiggy 2 年前
这种写法只能玩玩…换成4,5个请求的callback hell就不好了
Jasin Yip
Jasin Yip  (作者)  回复 DreamPiggy 2 年前
就题论题而已
XMLHttpRequest发送ajax请求是异步的,你两个ajax请求一起发出去,那基本上都是同时。处理ajax不存在什么同时或者不同时的概念,浏览器跑的javascript只有一个线程,所以肯定是先后处理的。
Use Promise. api.jquery.com/jquery.w
$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) {
  // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
  var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It"
  if ( /Whip It/.test( data ) ) {
    alert( "We got what we came for!" );
  }
});
这种情况很常见。我要同时请求两个数据才能给用户反馈。jquery的when方法。
其实这个一定存在后端优化的可能。我们一般的做法是要求服务端把两个接口改成一个接口。
同时发出。等待异步返回。可以节省等待时间。不需要等一个返回后再发出另一个。
处理上如果没有关联,通常的回调处理就行。如果有互相关联,例如等所有请求都返回后执行某个回调,可以使用高阶函数或 promise 模式处理。

搞清楚为何使用AJAX。AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,通过在后台与服务器进行少量数据交换,对网页的某部分进行更新。

好处有很多,例如:网页显示更快,简化当前页面的请求处理,页面上其它不同的业务数据可以分开单独处理等等。

怎样处理多个AJAX请求?按正常的处理就行了,每个AJAX请求都是单独进行的,至于同不同时?这不重要。
我觉得题目的意思是两个请求都回调了执行这个函数,计数器就可以了吧
单线程下就没有“同时”这码事吧

不太清楚题主要表达的意思:
1 是两个页面的ajax同时请求服务器? 也就是同时请求后端页面,然后返回结果?
2 同一页面,同时发送两个ajax?

说了 ,浏览器是单线程,既然是单线程,那么只能是从上倒下执行,如何存在同时?

总结起来就是我搞不清楚题主想问什么?
如果可以的话 希望你能说明白一点,谢谢
2个请求,处理速度不一定一样,哪个先响应完毕,就先处理哪个。
比如发送ajax,让后端查询到不同ip的ping值。
有些ip压根就没响应,如果你顺序执行10000个查询,那要等到猴年了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值