此代码中async的含义

时间:2014-12-17 09:12:47

标签: jquery ajax asynchronous

var response = $.ajax({
            url: "/Master/chkDuptindustryid",
            type: "POST",
            data: "{ 'systemid':'" + systemid + "'}",
            async: false,
            contentType: "application/json; charset=utf-8",
            success: function (response) {

4 个答案:

答案 0 :(得分:3)

将async设置为false意味着您调用的语句必须在调用函数中的下一个语句之前完成。如果设置async:true,则该语句将开始执行,并且无论异步语句是否已完成,都将调用下一个语句。

AJAX中的第一个A是异步的。该函数在AJAX调用返回之前返回(或至少可以)。只有两个选择:

使用async:false选项使AJAX调用同步(不推荐);要么 改变你的思维方式。不需要从函数返回HTML,而是需要传递一个回调,以便在AJAX调用成功时调用

答案 1 :(得分:1)

说什么:你可以进行同步调用而不是异步调用,这是默认的。

http://api.jquery.com/jquery.ajax/

  

默认情况下,所有请求都是异步发送的(即设置为   默认为true)。如果需要同步请求,请将此选项设置为   假。跨域请求和dataType:" jsonp"请求没有   支持同步操作。请注意,同步请求可能   暂时锁定浏览器,在请求时禁用任何操作   活跃。 从jQuery 1.8开始,使用async:false和jqXHR   ($ .Deferred)已弃用; 您必须使用success / error / complete   回调选项而不是jqXHR的相应方法   对象如jqXHR.done()或不推荐使用的jqXHR.success()。

答案 2 :(得分:1)

取自http://api.jquery.com/jquery.ajax/

  

async(默认值:true)   类型:布尔值   默认情况下,所有请求都是异步发送的(默认设置为true)。如果需要同步请求,请将此选项设置为false。跨域请求和dataType:“jsonp”请求不支持同步操作。请注意,同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作。从jQuery 1.8开始,不推荐使用async:false和jqXHR($ .Deferred);您必须使用success / error / complete回调选项而不是jqXHR对象的相应方法,例如jqXHR.done()或不推荐使用的jqXHR.success()。

基本上,它会强制同步请求并锁定浏览器。

答案 3 :(得分:0)

  

async(默认值:true)类型:Boolean默认情况下,发送所有请求   异步(即默认设置为true)。如果你需要   同步请求,将此选项设置为false。跨域请求   和dataType:" jsonp"请求不支持同步操作。   请注意,同步请求可能会暂时锁定浏览器,   在请求处于活动状态时禁用任何操作。从jQuery 1.8开始,   不推荐使用async:false和jqXHR($ .Deferred);您   必须使用success / error / complete回调选项而不是   jqXHR对象的相应方法,如jqXHR.done()或   不推荐使用jqXHR.success()。

source