同じ問題が発生し、コアファイルを変更せずに解決できました。アイデアは、jQueryのグローバルajaxSend()イベントをリッスンし、現在のリクエストのjqXHRオブジェクトを保存してから、フィルターのクリックハンドラーで、リクエストがまだ完了しているかどうかを確認し、完了していない場合は中止することです。したがって、コードは次のようになります。
var filterXHR = null;
$(document).ajaxSend(function (event, jqXHR, settings) {
filterXHR = jqXHR; // cache XHR object for current ajax request
});
// event handler for when a filter is selected/changed/etc.
$('#filters-block .form-item a').click(function () {
// check if there is a previous request that has not yet completed
if (filterXHR && filterXHR.readyState != 4) {
// abort ajax request
filterXHR.abort();
// subsequent requests will add their own progress indicator,
// so you probably want to remove the old one here
$('.ajax-progress').remove();
}
// submit exposed form, do other stuff, etc..
});
[古い投稿を復活させるための一般的に悪いインターネットエチケットを知っていますが、これは私が情報を探していたときにグーグルで出てきた最初の(そして唯一の)意味のある結果だったので、ここで私の解決策を共有するのが適切だと思いました同様の問題を抱えてこのページにたどり着く可能性のある他の人の利益。]