0

除了发送顺序之外,两个 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' });
}

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

4

3 回答 3

5

是的,任何一个响应都可以随时到达。涉及许多变量,包括网络延迟和服务器负载。此外,JavaScript 端没有任何东西可以强制执行特定的顺序,它们都是异步回调,只要响应到达就运行。

于 2013-07-24T15:02:10.603 回答
2

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

$.when($.getJSON(url1), $.getJSON(url2)).then(function (json_categories1, json_categories2) { ... })
于 2013-07-24T15:11:55.633 回答
1

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

于 2013-07-24T15:04:15.780 回答