FitTech
@FitTech

Как ограничить запросы?

Есть на странице кнопка, после нажатия на которую отправляется ajax запрос на сервер. Если я быстро нажимаю, например, 15 раз, столько запросов подряд и уйдет. Вопрос, как ограничить такие действия, как-то поставить максимум отправки в минуту или как?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
https://lodash.com/docs/4.17.4#debounce
но лучше блокировать кнопку после первого нажатия, чтобы пользователю было видно, что жмякать дальше бесполезно. Например сделать её полупрозрачной и установить pointer-events:none.
По таймеру разбловировать или же по завершению запроса.
Ответ написан
Комментировать
@lnked
var $button = $('button');

$('body').on('submit', 'form', function(e) {
    e.preventDefault();

    $button.addClass('is-busy');
    
    var formData = !!window.FormData ? new FormData($(this)[0]) : $(this).serialize();

    $.ajax({
        url: '/request/url',
        type: 'POST',
        data: formData,
        dataType: 'JSON',
        contentType: false,
        processData: false,
        success: function(response) {
            $button.removeClass('is-busy');
        },
        error: function(response) {
            $button.removeClass('is-busy');
        }
    });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы