当一个接一个地发送两个确切的AJAX请求时,返回顺序会有所不同吗?

时间:2013-07-24 15:00:58

标签: javascript jquery ajax

除了发送顺序之外,两个AJAX请求的方式完全相同。

唯一的区别是功能在不同的时间执行。功能1,然后是功能2.

示例伪代码。

function 1 {
   $.getJSON(url , function(json_categories) { print json_categories + '1' });
}

function 2 {
   $.getJSON(url , function(json_categories) { print json_categories + '2' });
}

我的问题是在功能1之前可以打印功能2吗?

3 个答案:

答案 0 :(得分:5)

是的,任何一个回复都可以随时到达。涉及许多变量,包括网络延迟和服务器负载。此外,JavaScript方面没有任何内容可以强制执行特定的订单,只要响应到达,它们都会连接到的异步回调。

答案 1 :(得分:2)

如果您需要等待两个请求返回,请使用jQuery的$when()方法:

$.when($.getJSON(url1), $.getJSON(url2)).then(function (json_categories1, json_categories2) { ... })

答案 2 :(得分:1)

是的,因为它是异步调用。您调用URL并等待响应,这取决于您无法控制的许多变量。如果你想进行常规调用,请将async param设置为“false”(请注意,它已被弃用,将在未来的jQuery版本中删除)。