欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

細(xì)數(shù)Ajax請求中的async:false和async:true的差異

 更新時(shí)間:2017年02月10日 09:43:23   投稿:jingxian  
下面小編就為大家?guī)硪黄?xì)數(shù)Ajax請求中的async:false和async:true的差異。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

實(shí)例如下:

function test(){
  var temp="00";
  $.ajax({
    async: false,
    type : "GET",
    url : 'userL_checkPhone.do',
    complete: function(msg){
      alert('complete');
    },
    success : function(data) {
      alert('success');
      temp=data;
      temp="aa";
    }
  });
  alert(temp);
  }

UserLAction中checkPhone()方法

  public void checkPhone() throws IOException {
    this.getServletResponse().setContentType("text/html; charset=UTF-8");
    this.getServletResponse().setHeader("Cache-Control", "no-cache");
    PrintWriter out = this.getServletResponse().getWriter();
    out.print("true");

  }

async: false,(默認(rèn)是true);

當(dāng)async: false為同步,這個(gè) test()方法中的Ajax請求將整個(gè)瀏覽器鎖死,

只有userL_checkPhone.do執(zhí)行結(jié)束后,才可以執(zhí)行其它操作。

所以執(zhí)行結(jié)果是先alert('success'); alert('complete'); alert("aa");

當(dāng)async: true 時(shí),ajax請求是異步的。但是其中有個(gè)問題:test()中的ajax請求和其后面的操作是異步執(zhí)行的,那么當(dāng)userL_checkPhone.do還未執(zhí)行完,就可能已經(jīng)執(zhí)行了 ajax請求后面的操作,

所以結(jié)果是alert('success'); alert('complete'); alert("00");

這樣就會發(fā)現(xiàn)alert("success")和alert(temp)幾乎是同步執(zhí)行,所以temp就是初始化的值temp = "00",而不是  temp="aa";

以上這篇細(xì)數(shù)Ajax請求中的async:false和async:true的差異就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論