編集: リクエストを中止するとすぐに、ブラウザはそれ以上リッスンする必要がありません。だから、イベントキューのレスポンスに到達すると、私はそれを投げ捨てるべきだと考えています。
あなたはそれで問題を抱えている場合は、あなたが次のことを試みることができる:それはそれはもはや必要が検出されなかった場合
は、あなたが自分自身をキャンセルするあなたの成功の機能+ URLのチェックを行うことができます走る?例えば
(と私はあなたがこのようにそれを行う必要がありますとは言わないよ、私はjqXHR要求には何も付けしようとしていない):
var numReq = 0, lastReq;
$('#button').on('click', function(e) {
if (lastReq) { lastReq.abort(); }
numReq ++;
lastReq = $.ajax({
success : function(d, s, x) {
if (x.reqNum < numReq) { return; }
}
});
lastReq.reqNum = numReq;
});
私の理解では、Ajaxのイベントはなりませんですあなたは(理論的に)AJAX後のreqnumの設定について心配する必要はありませんので、ボタンのクリック後までイベントキューに追加を
は、私はまた、次のコードを試してみた...、行われます。
var numReq = 0, lastReq, timer = 100,
c = setInterval(function() {
if (lastReq) { lastReq.abort(); }
numReq ++;
lastReq = $.ajax({
url : 'index.html',
cache : false,
success : function(d, s, x) {
if (x.reqNum < numReq) { console.log('it happens'); }
}
});
lastReq.reqNum = numReq;
}, timer);
ページの読み込み時間を(可能な限り)試行して一致させるタイマーを変更します。私は "それが起こった"ことを表示していない。