DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX基礎知識 >> 細數Ajax請求中的async:false和async:true的差異
細數Ajax請求中的async:false和async:true的差異
編輯:AJAX基礎知識     

實例如下:

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,(默認是true);

當async: false為同步,這個 test()方法中的Ajax請求將整個浏覽器鎖死,

只有userL_checkPhone.do執行結束後,才可以執行其它操作。

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

當async: true 時,ajax請求是異步的。但是其中有個問題:test()中的ajax請求和其後面的操作是異步執行的,那麼當userL_checkPhone.do還未執行完,就可能已經執行了 ajax請求後面的操作,

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

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

以上這篇細數Ajax請求中的async:false和async:true的差異就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved