ajax の場合、ajax は主にフロントエンド ページでサーバー バックエンドにデータをリクエストするために使用され、同期 (async = false) と非同期 (async = true) の 2 つの実行方法に分けられることを知っておく必要があります。では、 ajax の同期リクエスト メソッドと非同期リクエスト メソッドの違いは何でしょうか? この記事では、ajax 同期と非同期実行の違いについて詳しく分析します。
まず第一に、ajax 同期リクエストと非同期リクエストとは何ですか?
ajax 非同期リクエスト:
非同期リクエスト リクエストが行われると、リクエストを送信する Ajax はページに影響を与えません。読み込みとユーザー操作は 2 つの行にあるのと同等で、それぞれが互いに影響を与えることなく独自の方向に進みます。一般的なデフォルト値は true です。非同期リクエストは、リクエストの長短に関係なく、ユーザー エクスペリエンスにまったく影響を与えません。ユーザーはページ上の他のコンテンツの操作に集中しており、待つ気はありません。
例:
$.ajax({ type:"POST", url:"Venue.aspx?act=init", dataType:"html", success:function(result){ //function1() f1(); f2(); } failure:function (result) { alert('Failed'); }, } function2();
説明: 上記のコードでは、ajax ブロックがリクエストを送信すると、function1() に留まり、サーバーからの戻りを待ちますが、同時に(この待機プロセス中に)、フロントデスクは function2() を実行します。
ajax 同期リクエスト:
同期リクエストとは、現在のリクエストが発行された後、ブラウザは何もできず待機する必要があることを意味します。リクエストが完了してデータが返された後、後続のコードが実行されます。これはキューイングと同じです。つまり、JS コードが現在の ajax にロードされると、ページ内のすべてのコードのロードが停止します。この ajax が実行されると、ページは一時停止アニメーションの状態になります。完了後、他のコード ページの実行が継続され、一時停止アニメーションの状態が解除されます (つまり、ajax がデータを返すと、後続の関数が実行されます)。
例:
$.ajax({ type:"POST", url:"Venue.aspx?act=init", dataType:"html", async: false, success:function(result){ //function1() f1(); f2(); } failure:function (result) { alert('Failed'); }, } function2();
説明: 上記のコードでは、asyn が false に設定されている場合、ajax リクエストは、この時点で ajax ブロックがリクエストを送信した後に同期されます。今度は、関数 1() で待機し、関数 1() 部分が完了するまで関数 2() を実行しません。
ajax 同期リクエストと非同期リクエストの意味を読んだ後、ajax 同期リクエストと非同期リクエストの違いを見てみましょう。
ajax 同期リクエストと非同期リクエストの違い:
非同期モード:
AJAX を使用してリクエストを送信した後、実行する必要があるコードがまだ存在する可能性があります。現時点では、さまざまな理由によりサーバーがリクエストに応答していない可能性がありますが、非同期実行を使用しているため、AJAX リクエスト コードを含むすべての関数の残りのコードは引き続き実行されます。リクエストの結果を別の JS 関数に渡して処理すると、2 つのスレッドが同時に実行されているような状態になります。
同期モード:
AJAX を使用してリクエストを送信した後も、後で実行する必要があるコードがまだ残っています。サーバーの応答を別の JS 関数に処理する必要がありますが、このときのコードの実行状況は、サーバーが応答しない、または応答結果を処理する JS 関数が処理を完了せずにリターンを完了した場合、その関数を含む関数の残りのコードが返されます。リクエストコードを実行できません。単一スレッドと同様に、リクエストが送信された後にブロック状態に入り、残りのコードはブロック状態になるまで実行を継続しません。
上記はこの記事の全内容です。さらに興味深い内容については、php 中国語 Web サイトを参照してください。 ! !
以上が同期 ajax と非同期 ajax の違いは何ですか? Ajax同期と非同期の違いの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。