0

私の質問はおそらくヌービーですが、実際には答えが見つかりません。

特定の ajax で abort() メソッドを使用したい。ただし、私は常に request=$.ajax... をすべてのリクエストに使用し、 request.abort() は、必要なものだけではなく、すべての ajax をキャンセルします。

名前を付けて正しいものを指す方法はありますか?ここに私のコードがあります

request.abort();
request = $.ajax({
url: "getphp/gettooltip.php",
type: "GET",
data: {db : db, id : url.substring(url.lastIndexOf('=')+1)},
dataType: "JSON"
});
request.done(function(msg){
d3lttFillInTooltip(msg,db)
$('#d3ltttooltipdiv').css('visibility','visible');
});

これを実行する前に、この同じ ajax の最後の呼び出しをキャンセルする必要があります。

どんな助けでも大歓迎です:)

4

2 に答える 2

0

jqXHRオブジェクトごとに異なる変数を使用します。

于 2012-05-03T22:08:27.473 に答える
0

request=$.ajax({...});単一の呼び出しごとに単純に割り当てないように、コードを変更する必要があります。ある種のリストまたはリクエストのマッピングが必要です。これを実装する方法は、いつリクエストを中止する必要があるかによって異なります。たとえば、最後のリクエストを簡単に中止できるように、リクエストのスタックが必要な場合は、次のようにすることができます。

var requests = [];
requests.push($.ajax({
    // request 1
    ...
}));
requests.push($.ajax({
    // request 2
    ...
}));
requests.push($.ajax({
    // request 3
    ...
}));

requests.pop().abort(); //aborts request 3
// or...
requests.shift().abort(); //aborts request 1

これで問題が解決しない場合は、いつリクエストを中止する必要があるかについての詳細情報を提供してください。結論 -- 特定のリクエストを対象にしたい場合は、作成するすべての ajax リクエストに request を設定しないでください。

于 2012-05-03T22:20:22.220 に答える