1

AJAX 呼び出しを同期させたい場合の画面ブロッカーの良い提案はありますか (それにより、ユーザーが終了するまで何かをすることを禁止しますか?)

4

1 に答える 1

2

Synchronous-JAX (SJAX) を使用すると、AJAX の利点が失われ、ほとんど (またはすべて) の場合、ユーザー エクスペリエンスが低下します。

その代わり:

  • SJAX を使用して UI をロックするのではなく、モーダル ウィンドウを使用して、関心のある UI にフォーカスがある間、ページの他の部分を隠してみてください。これは最も単純なアプローチであり、現在は非同期ですが、サーバーが応答する前にユーザーが何もできないようにブロックすると、非同期の概念全体が失われます。

  • より良いアプローチは、AJAX を呼び出す処理関数を一時的に削除して、ページの他の部分で操作を続行できるようにしながら、フォーム/ボタン/その他の操作を禁止することです。

    たとえば、フォームがあります。送信時に AJAX を呼び出すイベント ハンドラーをそのフォームにバインドします。送信中に、そのハンドラーをフォームから一時的に削除するか、AJAX を呼び出さないようにするロジックを作成して、それ以降の送信が何もしないか、「まだ処理中/読み込み中」と言うようにします。サーバーが応答したら、そのハンドラーを再アタッチして機能させます。

于 2012-12-21T11:18:37.820 に答える