2011-10-28 11 views

答えて

23

ブラウザがロックされないという点で非同期です。 Ajaxリクエストを発生させた場合、リクエストが応答を待っている間も、ユーザーは引き続き作業できます。サーバーが応答を返すと、応答を処理するコールバックが実行されます。

だけで、それはする必要はありません、置く(その時間のほとんどは、これは不適切である)

+2

-1非同期は「同時に」ではないことを意味します。あなたはAJAXについて「同時にではない」ことを説明しませんでした。あなたの答えは、呼び出しと同時に作業できるように聞こえるので、非同期と呼ばれ、文法的に意味をなさない。 – gcdev

+0

@gcdev私はこの混乱が起こると思います。なぜなら、前述のように(https://stackoverflow.com/questions/748175/asynchronous-vs-synchronous-execution-what-does-it-really-mean#comment57854159_748189)、この文脈における「非同期」および「同期」は、2つ以上のタスク間のタイミング関係を指すものではない。むしろタスクと時計の関係を指しています。したがって、この答えは理にかなっています。 – today

0

をしたい場合は、XMLHttpRequest同期を行うことができます、そしてあなたがしなければ、要求が顕著である一方で、ブラウザがロックアップ新しい情報を得るためにページ全体をリロードしてください。 メールクライアントを考えてみましょう。新しい電子メールを表示するためにページを更新する必要はありません。新しいメールがあるかどうかを確認するために数分おきにサーバーをプルするだけです。

+1

IMHOこの回答は、AJAXと一般的な非同期が間違っていることを示しています。 AJAXと非同期のどちらも単純な繰り返しポーリングと同じではなく、ユーザーが手動でページを更新する必要がありません。非同期はブロックしないことです(例:一部のリソース要求が保留中の間、さらなるページ/スクリプト処理をブロックしません)。この答えは、非同期性だけでなく、全く新しいページを読み込まずに新しいデータを読み込んで現在のページを更新することも可能にしている点で正しいです。 – stakx

15

クライアントとサーバーは、関数呼び出しの間、互いに独立して動作するため非同期です。

通常の関数呼び出しでは、呼び出しを行い、関数呼び出しが終了して戻るまで、呼び出し関数は再度実行されません。呼び出し元と呼び出し先は常に同期しています。

非同期関数呼び出し中に呼び出しを行い、呼び出し元にをすぐに返します。次に、被呼者は不確定な時間後に値を返す。 「不確定な時間」とは、呼び出し元と呼び出し先が同期しなくなったため、非同期です。

+0

ありがとうございます - 私は最終的に正確に "同期"と "非同期"と見なされるものを理解しています! 2つのAJAX呼び出しを同時に(同期して)実行すると、「非同期」と呼ばれることが常に戸惑っています。あなたはそれをうまく説明しました。 – gcdev

0

I.e.応答はイベントループによって処理されるため、 "ブロック"ではありません。

-1

クライアントとサーバーは、関数呼び出しの間、互いに独立して実行されます。

通常の関数呼び出し - 呼び出しを行い、関数呼び出しが終了して返されるまで、呼び出し関数は再度実行されません。呼び出し元と呼び出し先は常に同期しています。

非同期関数呼び出し - 呼び出しを行い、制御が呼び出し元にすぐに戻ります。次に、呼び出し先は、未定義の時間の後に値を返します。 「未定義の時間」とは、呼び出し元と呼び出し先が同期していないことを意味し、非同期です。

-1

シンクロナスは、呼び出されると常にシーケンスを維持しますが、非同期はシーケンスを維持しません。

関連する問題