同步异步

    在做高校的时候(当时还没有学到ajax呢),用到了ajax代码,其中最看不懂的就是async,在网上一查,原来这个属性表示的是同步、异步。Async默认是true(异步),false(同步)。

    同步和异步在汉语中的解释与计算机中完全不同。在计算机中的理解,同步就是当代码加载到当前ajax的时候会停止页面里所有代码的加载,页面出现假死状态,当这个ajax执行完毕后才会继续运行其他代码;异步就是执行ajax代码的时候,不会影响到后面代码的继续执行。(百度百科中的解释:异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。)

    很绕口,举个例子解释一下!

    同步操作就好像你现在需要手洗洗衣服和打扫卫生,这两件事情就不能同时进行,只能等待一件事情完成之后,才能去做另一件事情。而异步操作就好像用洗衣机洗衣服和打扫卫生,可以将衣服放入洗衣机中,让洗衣机洗,同时也不影响打扫卫生。在等待一件事情完成之前,不会影响到另一件事情的进行,这就是异步!

    function AjaxTest() {
        var flag = 0;
        //显示加载
        $("#ajaxStatus").text("正在加载数据请等待.......");
        //ajax提交处理(同步模式)
        $.ajax({
            type: "get",
            url: "/FunctionPage.aspx",
            async:false,            //async: true,   //异步    //async: false,  //同步  
            cache: false,
            data: "",
            dataType: "html",
            success: function (ajaxData) {
                flag = ajaxData;
                $("#ajaxStatus").text("数据加载完成!");
            }
        });
        alert(flag);
    }
    async:false,表示同步执行,当ajax代码执行完成后,才执行alert语句。async:true,表示异步执行,当ajax代码等待执行的时候,就会执行ajax后面的代码,即执行alert语句。
相关文章
相关标签/搜索