私は現在、jQueryイベントキー押しでデータベースのアドレスを取得するツールを使用しています。 テキスト入力がフォーカスを失ったときに、ユーザーが入力を完了した後にドロップダウンが表示されないように、保留中の要求をすべて取り消します。 すべて正常に動作しますが、終了するには私のフォームの次のステップに進む最終的なAjaxリクエストを送信します。このリクエストは、これらのリクエストをすべてキャンセルする前よりもはるかに遅いです。キャンセルされたリクエストが保留中のリクエストに影響を与えてはならない理由はわかりません(クロムツールの[ネットワーク]タブで探しています)。 私はこのコードを使用しています:jQuery ajax request cancelledが現在のリクエストを遅くしました
jQuery.xhrPool = [];
jQuery.xhrPool.abortAll = function() {
jQuery(this).each(function(idx, jqXHR) {
jqXHR.abort();
jQuery('.loader').hide();
});
};
jQuery.ajaxSetup({
beforeSend: function(jqXHR) {
jQuery.xhrPool.push(jqXHR);
},
complete: function(jqXHR) {
var index = jQuery.xhrPool.indexOf(jqXHR);
if (index > -1) {
jQuery.xhrPool.splice(index, 1);
}
}
});
jQuery('#my_input').blur(function(){
jQuery.xhrPool.abortAll();
});
私は私が得ることはありません最適化のトリックがあると思います。 ありがとうございます。
キャンセルしていない場合は、まだ遅延がありますか? –
私はそれらをキャンセルするよりずっと遅いです。 – M4nch4k
あなたが最初に取り消しているものを送信せずにそのリクエストを送信した場合はどうなりますか?キャンセルされたリクエストは、あなたが問題を抱えている期間とは関係ありません。 –