JQuery $ .post()是否异步?

Sol*_*Sol 8 jquery

$ .post异步吗?因此,如果我执行下面的命令,它们将立即完成,而不是同步(1完成,等待,然后下一个,等等)?

$(document).ready(function() {
    var variable1 = '1';
    var variable2 = '2';
    var variable3 = '3';
    var variable4 = '4';

    $.post("process.php", {element1: variable1}, function(data){
        $("#area1").html(data);
    });

    $.post("process.php", {element2: variable2}, function(data){
        $("#area3").html(data);
    });

    $.post("process.php", {element3: variable3}, function(data){
        $("#area4").html(data);
    });

    $.post("process.php", {element4: variable4}, function(data){
        $("#area4").html(data);
    });
});
Run Code Online (Sandbox Code Playgroud)

Hik*_*yan 10

默认情况下,$.post()函数是异步的

如果你想让它同步Samuel J Mathew是正确的.但是如果你想继续使用$.post()而不是$.ajax(),你应该这样做:

$.ajaxSetup({async: false});  
$.post();
Run Code Online (Sandbox Code Playgroud)

记得将异步设置回true.祝好运!


sam*_*j90 6

正如其首字母缩写所建议的那样,所有ajax请求都是异步的。(异步Javascript和XML)

您可以在Jquery网站中参考$ .post()的api文档。

清楚地表明

这是Ajax的简写功能,等效于:

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
Run Code Online (Sandbox Code Playgroud)

成功回调函数将传递返回的数据,该数据将是XML根元素或文本字符串,具体取决于响应的MIME类型。它还传递了响应的文本状态。

从上面的摘录中,我们可以了解到$ .post()是异步的。

对于版本低于1.8的jquery,可以使用async:false使其同步。之后折旧。无论如何,建议不要使用此参数

对于> = 1.8的jQuery版本,可以使用.done()回调。您可以在其中添加所有您需要在ajax调用之后执行的操作