除了发送顺序之外,两个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吗?
答案 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版本中删除)。