この記事では、Ajax リクエストにおける async:false/true (同期/非同期) の役割について説明します。必要な方は参考にしていただければ幸いです。
async: デフォルトは true で、これは非同期モードです。 $.Ajax が実行された後、サーバーがデータを返すまで、ajax の背後にあるスクリプトが実行され続けます。 $.Ajax の success メソッドは、この時点で 2 つのスレッドによって実行されます。 false に設定すると、すべてのリクエストは同期リクエストとなり、値を返す前にブラウザがロックされるため、ユーザーはリクエストが他の操作を実行する前に完了するまで待つ必要があります。
以下の例を確認してください:
var temp; $.ajax({ async: false, type : "POST", url : defaultPostData.url, dataType : 'json', success : function(data) { temp=data; } }); alert(temp);
この ajax リクエストは同期リクエストであり、戻り値がなくなるまで、alert(temp) は実行されません。
async が true に設定されている場合、ajax リクエストによって返される結果を待機せず、ajax に続くステートメントを直接実行します。
しかし、同期リクエストを設定する上記の方法について、一部のネチズンは、async を false に設定した後、当初の目的はデータを返し、予想外に $.Ajax の背後でスクリプトを実行することであったと報告しました。 Firefox で問題が発生しました。ブラウザ (Firefox 11.0) の下にスプラッシュ画面が表示され、スクロール バーを一番下まで引き下げると ajax がトリガーされます。最終的には、async:false をコメント アウトすることしかできません。つまり、async が true の場合、Firefox ブラウザのスクロール バーが一番下まで引き下げられ、ajax がスプラッシュ スクリーンとして表示される問題は正常に解決されました。
要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。関連チュートリアルの詳細については、AJAX ビデオ チュートリアルをご覧ください。
関連する推奨事項:
以上がAjax リクエストにおける async:false/true (同期/非同期) の役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。