Аякс-подгрузка данных при скроле

В таблице 120 записей, подгрузка сделана незаметно) Смотрим реализацию

$(function()
  {
    var inProcess = 0
    $(window).on("scroll", function()
      {
        var scroll = $(window).scrollTop(),
			      offset = $(document).height() - $(window).height()*2,
            id = $(".flex div").last().attr("id");
        
        if(scroll >= offset && !inProcess){
          inProcess = 1
          getScroll(id)
          setTimeout(function(){
            inProcess = 0
          }, 333)
        }
      })
    getScroll(0) // первая подгрузка 
  })

function getScroll(id)
{
  $.ajax(
    {
      type: "POST",
      dataType: "json",
      url: "ajaxController.php",
      data:
      {
        func: "getScroll",
        id: id 
      },
      success: function(res)
      {
        for($i = 0; $i < res.length; $i++)
        {
          var img = res[$i]['img'],
              img = "<img src='images/"+img+".png' alt='' />",
              id = res[$i]['id'],
              book = res[$i]['book']
          $(".flex").append("<div id='"+id+"'><span>"+book+"</span>"+img+"</div>")
        }
      }
    })
    
}
  
PHP принимающий последний айдишник и отдающий следующие записи:

// Написан класс работающий с аякс-запросами, в нём много функций, покажу только работающую с подгрузкой при скроле

function getScroll()
{
  $id = (int)$_POST['id'];
  $count = 12;
  $lastId = $this->query("select `id` from `books` order by `id` desc limit 1");
  $lastId = $lastId[0]['id'];
  if($id >= $lastId){
    exit();
  }
  $result = $this->query("select * from `books` where `id` between ? and ?", [$id+1, $id+$count-1]);
  exit(json_encode($result));
}

ajaxScroll.rar

27.02.2023

197
A B i U S JS

PHP HTML CSS
Чат
    Для входа только имэйл или имя и апроль
    Можно сменить аватар
    Имэйл Ваше имя
    Пароль