小编典典

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

ajax

在jquery ajax中有一个参数

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

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


阅读 431

收藏
2020-07-26

共1个答案

小编典典

当需要在浏览器传递给其他代码之前完成该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) {
                    // .....
         }
       });
2020-07-26