0

私は次のような状況です:

タブ付きビューは、ビューを変更するためにタブをクリックすると AJAX リクエストを送信します。各リクエストは、ユーザーがタブをクリックしてからビューが更新されるまで約 3 ~ 4 秒かかります (これは正常であり、私の場合は受け入れられます!)

私の問題は次のとおりです。

ユーザーが tab1 の読み込み中に tab2 をクリックした場合、ユーザーは tab2 のコンテンツを表示し、tab1 の最初のクリックを無視することを期待します。

何が起こるかというと、tab1 の内容が最初に表示され、次に tab2 の内容が表示されます。この行為を防ぎたい。

私のフレームワークには以下が含まれています: Ruby 1.8.7 - Rails 2.3.5 - jQuery 1.5.2 (これは AJAX を行うために使用されます)

そのようなコードを使用しようとしましたが、うまくいきませんでした

function doRequest(){
  if (lastPageAjaxRequest){
    lastPageAjaxRequest.abort();
    lastPageAjaxRequest = null;
  }

  lastPageAjaxRequest = $.ajax(..);
}
4

1 に答える 1

2

リクエストをキャンセルする代わりに、成功のコールバックをキャンセルするだけです。これが最新のリクエストであるかどうかを確認する成功コールバック内でチェックを行うことができます。そうであればページを更新し、そうでなければ最新のリクエストが戻ってくるのを待ちます。

于 2011-08-07T11:54:59.210 に答える