什么是异步的区别:假的,异步:jQuery的阿贾克斯是真的吗?

问题描述 投票:38回答:3

在jQuery的AJAX有一个参数

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

是什么设置truefalse值之间的差异?

jquery ajax asynchronous
3个回答
73
投票

您可以设置异步为假,当你需要浏览器传递给其它代码之前完成Ajax请求:

<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。变量名是异步和值设置为true。这给了我一个小的混乱,以及时,首先了解它,让我们过目一下。

同步(异步:假) - 脚本停止,等待服务器继续之前发回的答复。有一些情况下同步Ajax是强制性的。

在标准的Web应用程序,客户和服务器之间的交互是同步的。这意味着,一个有一后发生。如果客户在点击一个链接,请求被发送到服务器,然后将结果发送回。

由于要求的危险迷路和悬挂的浏览器,不建议外的(onbefore)卸载事件处理任何同步JavaScript的,但如果你需要听到从服务器返回之前,你可以允许用户导航离开从页,同步JavaScript是不只是你最好的选择。

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

异步(异步:真) - 在脚本允许页面继续被处理,如果当它到达将处理答复。如果有什么不顺心的请求和/或文件传输,程序仍然要认识到这个问题,并从中恢复的能力。处理异步地避免了延迟,同时从服务器检索正在发生,因为你的访客可以继续与网页和请求的信息交互将更新页面,当它到达的响应进行处理。

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

也看看这篇文章

Asynchronous and Synchronous AJAX calls


6
投票

将它设置为false块主线程(负责执行JavaScript,呈现在屏幕等),并等待XHR完成。

这几乎总是一个可怕的想法。用户不喜欢没有响应的用户界面。


1
投票

异步(默认:true

类型:Boolean

默认情况下,所有的请求都发送异步(即这是默认设置为true)。如果您需要同步请求,将该选项设置为false。跨域请求和dataType: "jsonp"请求不支持同步操作。请注意,同步请求可能会暂时锁定浏览器,禁用任何行动,同时请求被激活。在jQuery 1.8,async: false与jqXHR($.Deferred)使用已经过时;您必须使用成功/错误/完整的呼选项,而不是jqXHR对象的相应方法,如jqXHR.done()

这里是Source

© www.soinside.com 2019 - 2024. All rights reserved.