并行执行多个AJAX请求,无需等待其他人响应

2023-12-27

我有一个问题,我需要执行多个 AJAX 请求 在一页上。请求同时开始,但他们似乎在等待前任返回。

假设 page1 需要大约 3 秒来加载。第 2 页需要 2 秒才能加载。我得到的是,两者同时启动,page1 请求在 3 秒后返回。

但问题是page2请求5秒后返回。 为什么 ?我认为每个 AJAX 请求都会在它自己的线程中运行。那么为什么要排队呢?为什么第二个要等第一个响应才开始?

我如何设法发送两个请求并在每个响应到达后立即对其进行处理?

$.ajax({
    type: "POST",
    url: 'page1.php',
    data: { }
})
.done(function( data ) {                
    console.log(data);
});
$.ajax({
    type: "POST",
    url: 'page2.php',
    data: { }
})
.done(function( data ) {                
    console.log(data);
});

我看到很多使用这种方法的例子。

$.when(
    $.get("/resource1"),
    $.get("/resource2"),
    $.get("/resource3")
).done(function(response1, response2, response3) {
// do things with response1, response2 and response3;
});

但据我了解,一旦所有响应返回,它将立即处理响应。

对这个有什么想法吗?


您的第一个代码示例保证在任何 AJAX 请求完成并且 CPU 空闲时运行代码free使用。做NOT忘记了 JS 引擎是单线程 and it queuesCPU 空闲时执行的任务。

如果第一个完成的 AJAX 请求 (A1) 需要 10 秒才能运行,并且在此期间第二个 AJAX 请求 (A2) 完成,则 A2 必须等待,因为 CPU 正在处理 A1 的代码。

您可以在此找到更多详细信息https://www.youtube.com/watch?v=8aGhZQkoFbQ https://www.youtube.com/watch?v=8aGhZQkoFbQ。在此视频中,Philip Roberts 介绍了事件循环在浏览器中的工作原理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

并行执行多个AJAX请求,无需等待其他人响应 的相关文章

随机推荐

  • 如何在一切都清楚的情况下重新启动 googlecolab 运行时?

    我在 colab 上安装了许多库和许多设置 现在我想清除我的 colab 帐户上的所有设置 文件 库和所有内容 有可能吗 To drop your current backend and start fresh with a new one
  • 角度材质对话框在导航后未关闭

    我正在开发一个显示数据表中实体概述的应用程序 每个实体都有链接实体 这些实体在列中显示为 xxx 链接实体 当用户单击该列的值时 将打开一个材料对话框 显示链接实体的列表 这些都是到其他实体的链接 单击这些链接之一后 会显示实体的正确页面
  • 如何提高 Google Big Query 每日查询配额

    我们正在运行批处理 并达到每日查询配额 20 000 有办法提高限额吗 thanks 我们通常很乐意提高每天的查询限制 目前为 40k 天 一般来说 它是为了防止滥用场景 使用 BigQuery 作为计算器的人 例如SELECT 17 32
  • 我可以在 1 个应用程序中拥有同一 UserControl 的多个实例吗?

    我正在创建一个文本编辑器类型应用程序 我可以通过选项卡打开多个编辑器 在我的第一次尝试中 我使用了简单的TextBoxes 编辑文本 一切正常 然后我创建了一个UserControl封装文本框 按钮来执行文本操作 例如 粗体 斜体等 我发现
  • 如何添加带有嵌套资源的删除路线 Rails 4

    Todo 有很多项目 我正在尝试添加一个链接以从待办事项列表中删除项目 我尝试过通过 id 在待办事项列表下查找项目的变体 但我无法弄清楚 这是基于我所做的更改的最新错误 我不知道如何解决这个问题 错误信息 No route matches
  • 在 R 函数中调用 SQL 函数

    我想知道是否可以致电SQL内的功能R功能 举例来说 我有这个虚拟数据并且SQL函数写在Postgres 9 3 CREATE TABLE tbl id VARCHAR 2 PRIMARY KEY name TEXT year born NU
  • ServiceStack - 是否有最新的、完整的文档?

    我正在尝试了解 ServiceStack 虽然它声称它拥有非常好的文档 但到目前为止情况似乎并非如此 是否有文档实际说明要使用哪些接口 基类以及它们的作用 只是 有一堆问题 并且能找到很少的答案 新的API设计 https github c
  • 如何安装气体预处理器?

    抱歉这个愚蠢的问题 我想安装气体预处理器 https github com yuvi gas preprocessor 但我只是不知道如何做到这一点 我与 pl 文件有什么关系 如何安装脚本 提前致谢 亚历克斯 好吧 我遇到了同样的问题 找
  • 如何在 jupyter 笔记本中添加/编辑代码片段?

    我尝试按照扩展的自述文件中给出的说明进行操作 我使用 Windows 并打开我的笔记本 我使用存储在目录中的 jupyter notebook exe Anaconda3 脚本 在 Anaconda3 目录中 我转到子目录 Anaconda
  • OLAP 中的锁定问题是什么?

    在一家当地金融机构 我因为向他们表达了我的观点 他们的程序员的痴迷 而被他们的程序员斥责 b 他们的 MS SQL Server 2005 OLAP SSAS 数据库中的锁定问题对我来说没有多大意义 OLTP 数据库是 SQL Server
  • 在 jQuery UI 日期选择器上禁用一周中的特定日期[重复]

    这个问题在这里已经有答案了 可能的重复 jQuery UI 日期选择器可以禁用周六和周日 以及节假日 吗 https stackoverflow com questions 501943 can the jquery ui datepick
  • VB.Net 列表.查找。将值传递给谓词

    使用带有自定义谓词的 List Find 时遇到一些问题 我有一个函数可以做到这一点 private function test Dim test As Integer keys Find AddressOf FindByOldKeyAnd
  • 在 Angular 2 应用程序上使用 Google Adsense 广告

    有没有办法在 Angular 2 应用程序上使用 Google Adsense 广告 我见过这个Angular 2 组件中的 Google AdSense 广告 https stackoverflow com questions 37580
  • Linux 在堆上的类中分叉

    当我遇到以下情况时会发生什么 A 类 保留动态分配的对象 B 它将创造和摧毁这些 B类 有一个由A调用的execute函数 execute将fork 子进程将使用execvp来运行另一个进程 但是 可以设置一个标志 以便父进程不会等待子进程
  • 刷新 MKMapView 上的 MKAnnotationView

    我想为我的自定义 MKAnnotationView 同步加载图像 我已经在使用 EGOImageView 框架 它与 UITableViews 配合得很好 但我无法让它在 MKMapView 上工作 图像似乎已加载 但我无法在地图上刷新它们
  • 在单元测试中但不在主程序中出现错误“Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl not found”

    我正在用 C 构建一个应用程序 它使用 com gargoylesoftware htmlunit WebClient 来访问和检索网页中的信息 我的应用程序在主项目中运行良好 但是当我尝试构建单元测试来测试项目类时 出现以下错误 Fact
  • getDispatcherType() 对于 HttpServletRequest 类型未定义[重复]

    这个问题在这里已经有答案了 我已将 Java 动态 Web 项目导入到 Eclipse IDE 中 该项目已在 Eclipse IDE 中实现并正常工作 我收到一个 getDispatcherType 类型未定义HttpServletReq
  • 使用金字塔进行金字塔认证

    在金字塔文档中 Sqlalchemy Dispatch 教程使用虚拟数据security py 我需要使用mysql数据 所以我是这样实现的 我的登录代码 view config route name login renderer json
  • 使用 Chart.js 实现任意位置 50 个点的雷达图的最有效方法是什么

    考虑如下的数据序列 data angle 1 2 value 1 2 angle 355 2 value 5 6 我想在径向缩放图上显示这些数据 即指示每个点的值有多高的圆形带 以显示角度与值 每个数据集的角度都会发生微小但无法控制的变化
  • 并行执行多个AJAX请求,无需等待其他人响应

    我有一个问题 我需要执行多个 AJAX 请求 在一页上 请求同时开始 但他们似乎在等待前任返回 假设 page1 需要大约 3 秒来加载 第 2 页需要 2 秒才能加载 我得到的是 两者同时启动 page1 请求在 3 秒后返回 但问题是p