В таблице 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