Как остановить новый вызов ajax, если ответ на запрос становится пустым в случае успеха - PullRequest
0 голосов
/ 19 октября 2018

У меня ниже jQuery ajax-код и вызов ajax-запроса при прокрутке страницы.Теперь я хочу прекратить отправку нового ajax-запроса, если ответ становится пустым.Я не хочу выполнять код ajax, так возможно ли это?

var eventPage = 2;

$(window).scroll(function() {
    if ($(window).scrollTop() == $(document).height() - $(window).height()) {
        $.ajax({
            url: ajaxUrl,
            type: 'post',
            data: {
                action: 'load_events_by_ajax',
                page: eventPage,
                security: '<?php echo wp_create_nonce("load_more_events"); ?>'
            },
            beforeSend: function() {
                $('body').loading({
                    stoppable: true,
                    theme: 'dark'
                });
            },
            success: function(response) {
                $('body').loading('stop');
                $('.EventThumbRow').append(response);
                eventPage++;
            },
            error: function(xhr) {
                $('body').loading('stop');
            }
        });
    }
});

1 Ответ

0 голосов
/ 19 октября 2018

Использовать логический флаг !

var eventPage = 2;

var blank = false;  // Flag for empty Ajax response

$(window).scroll(function() {
    if ( ($(window).scrollTop() == $(document).height() - $(window).height()) && !blank ) {  // Add !blank to the condition
        $.ajax({
            url: ajaxUrl,
            type: 'post',
            data: {
                action: 'load_events_by_ajax',
                page: eventPage,
                security: '<?php echo wp_create_nonce("load_more_events"); ?>'
            },
            beforeSend: function() {
                $('body').loading({
                    stoppable: true,
                    theme: 'dark'
                });
            },
            success: function(response) {
                $('body').loading('stop');
                $('.EventThumbRow').append(response);
                eventPage++;

                if (response == ""){
                  blank = true; // Turn the flag to true to skip subsequent Ajax requests.
                }
            },
            error: function(xhr) {
                $('body').loading('stop');
            }
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...