如何使ajax请求异步?

2023-12-28

我想让一些ajax请求异步。 比如两个Ajax,第一个Ajax不需要完成,第二个请求就可以发生,

$.ajax({
            url: "urlone",
            async: true, 
              complete: function () {
                console.log("1");
            }, 
            type: "post",
           dataType: "json"
        });


 console.log("2");

 $.ajax({
            url: "urltwo",
            async: true,
              complete: function () {
                console.log("3");
            },
             type: "post", 
             dataType: "json"
});

在 urlone 后台,我让线程休眠 5 秒, 在 urltwo 后台我立即返回 json。

我写了这个,但是没有效果 我想要控制台打印 2 3 1

但实际上,它打印 2 1 3

这表明只有第一个请求返回后才能触发第二个请求

如何解决这个问题呢??

2月6日补充:感谢您的热心解答。 我的服务器端是C# 并在乌尔隆 我写

JsonModel  xx=new JsonModel(){.......};   //as you known
System.Threading.Thread.Sleep(5000);
return Json(xx);

在网址二中 我写

JsonModel  xx=new JsonModel(){.......};   //as you known
return Json(xx);

就是这样!

我想要这个是因为我在urlone中执行了一个非常耗时的操作, 当我从urlone返回时,前端已经失去响应,即使我设置了很大的ajax等待时间。所以我想通过请求urltwo来查询urlone中的操作是否完成,urltwo是为查询数据库完整字段标志而设计的用于urlone中的操作。 这是我的想法。

但今天,我发现了一个新问题。 当我休眠后台线程很长时间,然后返回json数据到前端时,前端可以响应并完成一些js功能,但是当我在urlone后台执行一个非常耗时的操作时,当它返回到前端时,前端没有响应。 一定有什么问题我没有意识到, 所以


你说过你想要requests异步;他们是(而且你不需要async: true,这是默认值)。

这表明只有第一个请求返回后才能触发第二个请求

不是,这表明第一个完全的在第二个之前,并不是说第二个在第一个完成之前不会触发。

如果你确实看到2 1 3在重复的测试中,这会告诉您以下两件事之一:

  1. 第一个请求本质上比第二个请求处理得更快 - 但如果您推迟处理urlone五秒钟(你已经verified那个),那么就不是这个了

  2. 服务器正在序列化它们

服务器可能会出于多种原因对它们进行序列化;这些原因取决于您使用的服务器端技术和配置。例如,some服务器将序列化对同一“会话”中动态生成的内容的请求。

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

如何使ajax请求异步? 的相关文章

随机推荐

  • UserControl 将 GridView 导出为 PDF

    我有一个用户控制我正在尝试将 GridView 表导出为 PDF 我可以很好地创建 CSV 文件 但在尝试创建 PDF 时出现错误 我正在使用 iTextSharp 库 这是我收到的错误 GridView 类型的控件 DoNotAddLis
  • 您应该为每个 tomcat 集群运行一个还是多个应用程序?

    目前我正在设置一个应用程序 可以将其他 Web 应用程序部署到 Tomcat 6 集群 现在已设置为在已部署的 Web 应用程序和集群之间建立一对一的关系 我目前的理由是 我可以更改 Tomcat 服务器的 JVM 参数 而不会中断其他应用
  • Android - 离线、非矢量、自定义地图

    对于我正在开发的应用程序 我需要显示自定义光栅图像图块 不是基于矢量 可能来自卫星图像 并且我需要离线执行此操作 我想使用 MapView 但我找不到一种方法来告诉它使用自定义的离线地图图块 而不是从谷歌服务器中提取数据 我见过一些替代方案
  • 通过断点编号 Xcode 识别断点

    在 Xcode 中使用调试器时 出现以下错误 Execution was interrupted reason breakpoint 6 3 所以 我想删除断点 6 3 我怎样才能知道哪一个的数字是 6 3 我查看了断点摘要面板 尝试右键单
  • 将在公共计算机或信息亭上使用的 ASP.Net Web 应用程序的安全注意事项

    我有一个无需身份验证即可在公共场所的计算机上使用的应用程序 这是一个简单的四页应用程序 允许用户申请结婚证 一些办公室将设有公共电脑亭 申请人可以在前往柜台前填写自己的信息 他们也可以在去办公室之前在家中这样做 我应该考虑哪些因素来确保用户
  • 出现错误:formGroup 需要一个 FormGroup 实例。请传一份

    我是 Angular 2 的新手 无法解决这个问题即使在查看其他堆栈溢出答案之后也是如此 我刚刚开始学习角反应形式 想尝试第一个例子 但被困住了 请帮忙 这是 HTML 表单 div class container div class ro
  • R - Riverplot 包使用 - 桑基图

    我尝试使用绘制桑基图河图包 http logfc wordpress com 2014 02 27 riverplot 到一月 然而 我的案例非常复杂 我还没有找到修复图表的方法 所以我发布了这个问题 希望这有助于找到我的问题的答案或改进包
  • 在Python中查找两个给定路径之间的公共文件的有效方法

    我编写了代码来查找两个给定文件夹 路径 之间的通用文件 说明所有级别的子文件夹 如果存在 请建议是否有更有效的方法 如果给出具有多层子文件夹的文件夹 则花费的时间太长 def findCommonDeep self path1 path2
  • For 循环不能在同一个文件描述符上工作两次[重复]

    这个问题在这里已经有答案了 该代码没有进入第二个 for 循环 我没有在任何地方修改文件描述符 为什么会发生这种情况 import os import re path home ajay Desktop practice ajay txt
  • Jquery脚本删除表单集合中的所有项目

    我有一张桌子 table class Products tr th ProductId th th Productname th th Quantity th th UnitPrice th tr tr td td tr table
  • 我无法让 Netbeans C++ 工作,我做错了什么?

    我最近下载了 Netbeans 但无法让 C 组件正常工作 当我尝试编译示例程序时 出现以下错误 c Users Documents NetBeansProjects Welcome 1 C Program Files x86 MinGW
  • 遵循 C 中的符号链接

    我正在编写一个 C 程序 给定符号链接的名称 该程序将打印链接指向的文件或目录的名称 关于如何开始有什么建议吗 The readlink 已经提到的功能是答案的一部分 但是 您应该注意它可怕的接口 它不会以 null 终止响应字符串 您可能
  • Gradle 未使用 ext:pom 导入依赖项

    我想要导入库 org geotools 添加原料compile group org geotools name geotools version 16 1 or compile group org geotools name geotool
  • 如何将 HTML 字符串绑定到 Android 应用程序中的 Web 视图?

    我目前有一个 android TextView 它绑定到一个可能包含或不包含 HTML 的字符串
  • 如何使异步 Dart 调用同步?

    我正在为一家德国公司评估 Dart 将各种 Java 程序移植到 Dart 中 并对结果进行比较和分析 在浏览器中 Dart 轻而易举地获胜 对于服务器软件性能似乎是一个严重的问题 参见我的这个问题 https stackoverflow
  • 如何根据支持 bean 条件有条件地显示 p:dialog

    有什么方法 或正确的方法 有条件的根据支持 bean 条件在 primefaces 上显示对话框 代码如下所示
  • 如何将 1400-1500 转换为下午 2 点至下午 3 点?

    我正在从服务接收表示时隙的数据作为字符串 格式如下 1500 1600 这意味着下午 3 点到 4 点 我将列出这些内容 例如 1200 1300 1300 1400 1400 1500 我必须在用户界面中将其表示为 中午 12 点至下午
  • `format()` 和 `str()` 有什么区别?

    gt gt gt format sys stdout lt io TextIOWrapper name
  • '=' sp_executesql 附近的语法不正确

    我需要delete all rows在一些table where值是空字符串 我有多个名称相似的表 我尝试执行字符串中的sql语句 DECLARE sql AS NVARCHAR MAX DECLARE emptyValue AS NVAR
  • 如何使ajax请求异步?

    我想让一些ajax请求异步 比如两个Ajax 第一个Ajax不需要完成 第二个请求就可以发生 ajax url urlone async true complete function console log 1 type post data