ajax 的 async 的同步和 异步

async 英语释义为 “异步,非同步”。在项目中使用时总是忽略了它的存在。

当 async 是设置为 “true(默认状态)”,即表示异步进行,在 $.ajax运行时,也会同时运行$.ajax ->url 中的东西(想当于有两个线程同时进行)。

当 async 是设置为 “false”,时表示同步(单线)进行,在$.ajax运行时,程序必须先进入到后台程序完成成后才能进行$.ajax后面的方法

以下为例: 

function openLogin(){

$.ajax({
            cache: true,
            type: "POST",
            url:"oneCard",
            dataType: "json",
            async: false,
            error: function(request) {
                alert("Connection error");
            },
            success: function(data) {
        alert("数据成功");
            }
        });
        alert("同步进行");
}

后台5S睡眠

Thread.sleep(5000);


async: 设置为 true 时 先弹框了 “同步进行”,5S后再弹框 “数据成功”,它俩实际是同步进行。只是等待了5S,所以“数据成功”在后弹框。

async:设置为 false 时 我在后台设置了等待5s响应。 此时前台5S 后弹框了“数据成功” 再弹框 “同步进行”,而非第一种情况.


我觉得这个例子也足够说明了。



猜你喜欢

转载自blog.csdn.net/qq_35649135/article/details/53182737