1

この質問はjQuery指向ですが、必ずしも排他的ではありません。

短い質問:

同期ajax呼び出しは、通常のボタンがクリックされるのをブロックできますか? 私のテストでは、それが起こらないことを示していますが、別のブラウザーで問題が発生する可能性があります。

長い質問:

私が尋ねた別の質問で、 ajax 呼び出しをブロックする方法 (ブロックしたい)で、ブラウザが場合によってはブロックすると言っていました。

実際、jQuery のドキュメントでさえ次のように述べています。Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

私はしようとしています:
1. それがどのように/なぜ起こるかを理解します。
2. それが起こる確率を評価します。

私の理解では、これは間違っている可能性があります。
私が開発者として、JavaScript VM を「ブロック」する ajax 呼び出し自体の前に UI をビルド/更新しなかった場合、ページの UI に「ロック」が発生すると思います。したがって、UI のビルド/更新が遅れます。正しいかどうか?

4

1 に答える 1

3

はい、そうなります。同期リクエストが未処理の間、ブラウザはそれが戻るのを待ちます。その可能性は 100% ですが、リクエストが十分に速く返される場合は、それほど目立たない可能性があります。問題は、リクエストがすぐに返されるとは期待できないということです。

それが ajax 呼び出しのポイントです。最初平均非同期で、「ブロックしない」ことを意味します。

ajax 呼び出しは非同期であるため、要求が返されたときにコードをどこにでも置くことができます。つまり、要求が返されたときに応答を処理する方法が必要です。そのため、コールバックを使用して応答を処理します。

試してみませんか?

于 2012-08-31T11:39:57.873 に答える