4

私のアプリケーションには、時々実行される多くの ajax リクエストがあります。settimeout で実行するものと、ユーザー インタラクションを使用するものがあります。私の問題は、ユーザー インタラクション部分です。

シナリオは、ユーザーがパラメーターを設定してボタンをクリックすると、ajax 要求が実行されます。パラメーターを間違えた場合、ユーザーは何かを調整してから ajax リクエストを再度実行しますが、前のリクエストはまだ進行中です。

前に述べたように、中断してはならない他の要求があるため、abortall() を使用せずに前の要求を中止したいと考えています。つまり、中止するリクエストを選択するようなものです。それ、どうやったら出来るの?助けてください。

4

1 に答える 1

3

Ext.Ajaxにプロパティがあります autoAbort : Boolean

新しいリクエストが保留中のリクエストを中止するかどうか。

デフォルト: false

利用可能以降: 1.1.0

このプロップをユーザーから送信された Ajax に設定して、 ajaxtrueに干渉しないようにします。setIntervalまた、クライアント側とサーバー側の検証があることを確認してください。これにより、不正なパラメーターが回避されます。クライアント側で不正なパラメーターを解決することは、ユーザーに偽のデータを送信させるよりも、はるかに迅速で安価でユーザーフレンドリーなことです!

Ext.Ajax.request({
    url: '/echo/json/',
    params: {
        id: 1
    },
    autoAbort : true, 
    success: function(response){        
          //do something
    },
    failure:function(response){
         //do something
    }
});

ここにフィドルの例があります!

于 2013-07-11T12:58:28.417 に答える