Ajax リクエストの async:false と async:true の違いは何ですか?

php中世界最好的语言
リリース: 2018-04-02 15:20:36
オリジナル
1777 人が閲覧しました

今回は、Ajax リクエストでの async:false と async:true の違いについて説明します。一見。

例は次のとおりです:

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);

このtest()ではasync: falseが同期されている場合、メソッド Ajax リクエストはブラウザ全体をロックします。

userL_checkPhone.do の実行が完了した後にのみ、

他の操作を実行できます。

つまり、実行結果は最初にalert('success');alert("aa");

async: trueの場合、ajaxリクエストは非同期になります。しかし、問題があります。test() の ajax リクエストとその後の操作は非同期で実行されるため、userL_checkPhone.do の実行が完了していないときに、ajax リクエストに続く操作が実行された可能性があります。

そのため、結果はアラート ( 'success');alert('complete');alert("00");

このように、alert("success") とalert(temp) がほぼ同時に実行されることがわかります。 value temp = "00" (temp="aa" ではなく) です。

この記事のケースを読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

Ajax+mysqlでメッセージボード機能を作成


ajaxを使用してデータページングクエリを実装する手順の詳細な説明

以上がAjax リクエストの async:false と async:true の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート