Ужас, никак не выходит, я уже всю голову об стену разбил!
Подскажите пожалуйста, кто знает как сделать, чтоб корректно заработало.
При прокрутке до низа должна подгружаться партия товаров, а они подгружаются все, потому что происходит несколько обращений, хотя флаг (busy) на время выполнения обращения к серверу установлен.
Выкладываю полностью функцию:
$(document).ready(function(){
if ($(".main-container").hasClass("catalog-page")) {
let scrollFrom = 0, busy = false, category;
$(window).scroll(function(){
if ( $(window).scrollTop() > scrollFrom ) {
$('#toTop').html($(window).scrollTop() + $(window).height()+'\r\n'+$(document).height());
if ($(document).height() - 60 <= $(window).scrollTop() + $(window).height() && !busy) {
category = $('.catalog h1').text();
$.ajax({
url: "ajax.php",
type: "post",
data: {"showmore": category},
dataType: "html",
beforeSend: function () { busy = true; }
}).done(function (data) {
console.log(data);
console.log($('.no-products').length);
if (data != 0 || data != '0') {
$("#main-catalog").show(500, function() {
$("#main-catalog").append(data);
});
} else if (!$('.no-products').length) {
$("#main-catalog").show(500, function() {
$("#main-catalog").append('<div class="col-12 no-products"> <h5 class="endoc">Нет товаров для показа.</h5> </div>');
});
}
});
busy = false;
}
// console.log(flag);
}scrollFrom = $(window).scrollTop();
});
}
});