ホームページ  >  記事  >  ウェブフロントエンド  >  Ajax リクエストにおける async:false と async:true の違いを詳しく説明する

Ajax リクエストにおける async:false と async:true の違いを詳しく説明する

亚连
亚连オリジナル
2018-05-22 17:23:251644ブラウズ

ここで、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) がほぼ同時に実行されることがわかります。 temp="aa" の代わりに value temp = "00";

上記は私が皆さんのためにまとめたもので、将来皆さんのお役に立てれば幸いです。

関連記事:

Ajax は mysql データと対話してメッセージボード関数を作成する

Ajax の同期と非同期の問題の簡単な分析と解決策

JSON 文字列と JSON 配列に応答する Ajax のインスタンス (グラフィック チュートリアル)

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。