javascript - AJAX 异步响应回调

标签 javascript ajax jquery asynchronous

我使用 AJAX 已有一段时间了,但使用的方式有限且简单。我使用 JQuery

目前我正在调试一个网络应用程序。客户端代码使用 JavaScript 和 JQuery。我注意到在此应用程序中可以同时发送多个 AJAX 请求(一个接一个)。我担心的是,因为 AJAX 是异步的,所以 AJAX 请求可能无法以正确的顺序完成。我想知道是否会执行正确的 AJAX 回调,而不管首先返回女巫响应还是以 FIFO 方式执行回调函数

让我详细说明

我有 2 个 AJAX 请求 A 和 B。A 和 B 都有自己的回调函数。该应用程序首先发出请求 A,然后立即发出请求 B。现在应用程序希望 A 先返回。现在我的问题是如果 B 先返回怎么办。将执行哪个回调?

我做了一些研究,但找不到有关此问题的任何信息。所以我假设浏览器会协调回调。为了确保我写了一个小测试。我的测试表明,无论哪个响应首先返回,第一个请求回调总是首先使用。

我的问题是行为是什么?还有使用什么技术或方法来避免这种情况。

最佳答案

看看 jQuery promise/deferred 对象,它们允许您控制这种确切的行为。

$.when( $.ajax("test.aspx") ).then( $.ajax("test2.aspx") );

http://api.jquery.com/category/deferred-object/

关于javascript - AJAX 异步响应回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584934/

相关文章:

javascript - Ajax调用后url中的data-id没有改变

javascript - Uncaught ReferenceError : reg is not defined

javascript - 事件处理程序返回 true J​​avascript jQuery

javascript - 为什么在 JavaScript 注释中使用 '@' - @param

javascript - 无法使用 jQuery 获取或设置 div 的 css

javascript - AngularJS:$q.defer() 不能被工厂方法共享

javascript - 函数中变量的 JS 可见性

javascript - 如何从多个元素的相同名称中获取名称属性的索引。

javascript - 需要帮助更新 redux reducer 中的操作有效负载数组

用于初始化私有(private)变量的 Javascript 构造函数