0

私のWebアプリでは、左側にボタンがあります。

右側には、どの左側のボタンが押されたかに基づいた表示が表示されます。

場合によっては、ユーザーは次のことを行います。

 1. Press button 1
 2. wait 1-3 seconds
 3. Get reasonably frustrated and click button 2
 4. button 1's display shows up instead

私が正しく理解していれば、ボタン1のサーバーからクライアントへの要求はボタン2の前に処理されます。

他のWeb開発者がこの問題に遭遇したと思います。どのようにアプローチする必要がありますか?

ありがとう、ケビン。

4

1 に答える 1

0

ボタンのクリックは AJAX リクエストになりますか? その場合は、リソースのフェッチ中にボタンを無効にして読み込み中の画像を表示するか、ボタンがクリックされたときに既存の AJAX リクエストをキャンセルしてから、別のリクエストを行います。例えば:

  var request;
  $('#button1').click(function(event) {
    if (request && typeof request.abort == 'function') request.abort()
    request = $.post(...)
  });

多くの要因に応じて、リクエストはほぼ確実にサーバー側で続行されますが、リクエストの結果を表示するために実行される関数はクライアント側で実行されなくなります。

于 2012-11-15T20:33:05.633 に答える