Из того, что я прочитал, общее решение этой проблемы выглядит следующим образом:
var DataRequest = $.ajax({ /* ... */ });
, а затем DataRequest.abort()
в событии beforeSend
ajax.Однако это приводит к тому, что НИКАКИЕ запросы не отправляются.
Я пытаюсь добиться прекращения любых операций ajax, которые объявлены как DataRequest (например), и разрешить выполнение только последнего запроса.В настоящее время у меня есть кнопка, которая при нажатии запускает запрос и добавляет спиннер загрузки.Если я нажимаю на нее много раз, я просто получаю кучу загрузочных блесен, заполняющих мою страницу.Как я могу предотвратить это?
Вот соответствующий код:
beforeSend: function() {
$('<div class="grid"></div>')
.attr('id', 'loading')
.hide()
.insertBefore('#output')
.fadeIn();
},
success: function(data) {
$('#loading').hide(function () {
$(this).remove();
});
}