使用jQuery设置async:false?

时间:2011-06-26 07:06:44

标签: javascript jquery ajax

设置之间是否有任何区别:

$.ajax({
    type: "POST",
    traditional: true,
    url: '/adminTask/doAction',
    async: false, <<<<<<<<<<<<<<  HERE
    data: parms,
    dataType: "json",
    success: function (data) {
        $("#rdy_msg").text("Completed: " + id);
    },
    error: function () {
        var cdefg = data;
    }
});

$.ajaxSetup({
   async: false
});

我问的原因是我最近发布了一个问题,一个人提到我使用ajaxSetup并设置async:false。但是我认为它已经在顶部的代码中设置了。

5 个答案:

答案 0 :(得分:3)

不同之处在于使用ajaxSetup会影响所有AJAX调用,除非您在该调用的特定设置中覆盖它。

当您在该呼叫的特定设置中设置async属性时,它不会受ajaxSetup设置的影响。

答案 1 :(得分:0)

是的,你是对的。如果您希望将来所有的ajax调用都默认使用ajaxSetup,请仅使用{{1}}。

答案 2 :(得分:0)

ajaxSetup使所有进一步调用ajax的设置成为默认设置。每次进行AJAX调用时都不必重复该设置。

$.ajaxSetup中记录了这一点:

  

使用任何函数的所有后续Ajax调用都将使用新设置

答案 3 :(得分:0)

不同之处在于使用$ .ajaxSetup会影响所有未来的ajax调用,因为您发布的第一个示例仅定义了该请求的设置。

http://api.jquery.com/jQuery.ajaxSetup/

答案 4 :(得分:0)

第一个仅针对该请求,而ajaxSetup影响所有Ajax调用的默认值。

http://api.jquery.com/jQuery.ajaxSetup/