在做高校的时候(当时还没有学到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语句。