ここで、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 サイトの他の関連記事を参照してください。