当前位置: 首页 > 面试题库 >

jquery ajax中async:false和async:true有什么区别?

牟焱
2023-03-14
问题内容

在jquery ajax中有一个参数

$.ajax({async: true, ...});

将值设置为true和的区别是什么false


问题答案:

当需要在浏览器传递给其他代码之前完成该ajax请求时,请将 async 设置为 false

<script>
    // ...
    $.ajax(... async: false ...); // Hey browser! first complete this request, 
                                  // then go for other codes

    $.ajax(...); // Executed after the completion of the previous async:false request.
</script>

By default, the $ .ajaxrequest in jQuery is set to asynchronous。变量名称是async,并且值设置为true。第一次学习它时,这也给我带来了一些困惑,所以让我们开始吧。

同步(async:false) –脚本停止并等待服务器发送回答复,然后继续。在某些情况下,必须使用同步Ajax。

在标准Web应用程序中,客户与服务器之间的交互是同步的。这意味着一个必须在另一个之后发生。如果客户单击链接,则请求将发送到服务器,然后服务器将结果发送回去。

由于存在丢失请求并挂起浏览器的危险,因此不建议在(之前)卸载事件处理程序之外的任何内容使用同步javascript,但是如果您需要在服务器上回音,则可以允许用户离开从页面上看,同步Javascript不仅是您的最佳选择。

$.ajax({
         url: "file.php",
         type: "POST",
         async: false,
         success: function(data) {
                // .....
         }
      });

异步(async:true)
–脚本允许页面继续处理的地方,并且在到达页面时将处理答复。如果在请求和/或文件传输中出现任何问题,您的程序仍然可以识别问题并从中恢复。异步处理避免了从服务器进行检索时的延迟,因为您的访问者可以继续与网页进行交互,并且请求的信息将在响应与更新页面的同时进行处理。

$.ajax({
         url: "file.php",
         type: "POST",
         async: true,
         success: function(data) {
                    // .....
         }
       });


 类似资料:
  • 问题内容: 通过Firebug查找相对的XPath时: ---------如果我们一开始不使用点表示什么呢? 只需添加Xpath-它突出显示—各种页面元素----------这意味着什么? 以下是XPaths for Gmail密码字段。的意义是什么? 问题答案: 这些表达式都选择不同的节点集: .//*[@id=’Passwd’] “。” 在开始处表示当前处理 在当前节点处开始 。“ *”选择从

  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 问题内容: 我只是想知道为什么我们通常在两个布尔之间使用逻辑OR 而不是按位OR ,尽管它们都运行良好。 我的意思是,请看以下内容: 我们可以代替使用吗?与和相同。 问题答案: 如果您使用和形式,而不是这些运算符的和形式,则Java不会费心地单独评估右手操作数。 这是您是否希望缩短评估时间的问题-在 大多数情况 下都是如此。 说明短路好处的一个好方法是考虑以下示例。 正如Jeremy和Peter提

  • 问题内容: 我一直认为Java 中的运算符用于验证其两个布尔操作数是否均为,并且该&运算符用于对两种整数类型进行按位运算。 最近我知道,也可以使用运算符来验证其两个布尔操作数是否均为,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。 Java中的运算符是否在内部重载?还是在这背后有其他概念? 问题答案: <-验证两个操作数 <-停止评估第一个操作数是否为false,因为结果为fa

  • 问题内容: JavaScript中的&和&&有什么区别? 示例代码: 似乎&&是一个逻辑上的“和”,如果两个都为true,则总是为我提供第二个值。 但是什么是&? (顺便说一下,&&在Python中似乎是“ and”;&在Python中似乎是&。) 问题答案: 是按位AND 该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。 注意: 在Javascript中,