当前位置 : 主页 > 网页制作 > JQuery >

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

来源:互联网 收集:自由互联 发布时间:2021-06-15
在 jquery ajax中有一个参数 $.ajax({async: true, ...}); 将值设置为true和false有什么区别? 在浏览器传递给其他代码之前需要完成ajax请求时,将async设置为false: script // ... $.ajax(... async: false ...
在 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>

默认情况下,jQuery中的$.ajaxrequest设置为异步.变量名称为async,值设置为true.当我第一次了解它时,这给我带来了一些困惑,所以让我们来看看它.

同步(async:false) – 脚本停止并等待服务器在继续之前发送回复.在某些情况下,同步Ajax是必需的.

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

由于请求丢失和挂起浏览器的危险,不建议在(onbefore)卸载事件处理程序之外的任何内容使用同步javascript,但如果您需要先从服务器收到回复,然后才能允许用户导航从页面,同步Javascript不仅是您的最佳选择.

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

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

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

另外看看这篇文章

Asynchronous and Synchronous AJAX calls

网友评论