Я намерен загрузить больше элементов из базы данных с помощью бесконечной прокрутки Ajax. Когда я прокручиваю div до конца с id = results, ajax работает нормально в первый раз и добавляет строки 21-31 из базы данных. Примечание: ...

0
codes4life 31 Дек 2020 в 18:48

1 ответ

Лучший ответ

Используйте переменную, чтобы определить, находитесь ли вы в середине запроса AJAX, чтобы вы не отправляли дубликат.

let in_ajax = false;

$(window).scroll(function() { //scroll function
  if (!in_ajax) {
    if ($(window).scrollTop() >= $('#result').height() - $(window).height()) {
      in_ajax = true;
      $.ajax({
        type: 'POST',
        url: 'results.php', //get result page
        data: {
          'offset': flag,
          'limit': 10
        },
        success: function(data) {
          $('#result').append(data);
          flag += 10; //add 10 to last offset value after callback
          in_ajax = false;
        }
      }); //close ajax
    }
  }
});
0
Barmar 1 Янв 2021 в 04:51