Доброго времени суток. У меня есть поиск по базе данных, и, допустим, в ней находятся 60 000 тыс. строк, сделал так, что сначала выводил по 100 записей, при загрузке первых 100, выводит нормально по запросу, но когда уже идет обращение к ajax для загрузки след. 100 записей, он начинает выдавать не по запросу.
Запрос на ajax
$(document).ready(function(){
var inProgress = false;
/* С какой статьи надо делать выборку */
var startFrom = 100;
$(window).scroll(function() {
/* Если высота окна + высота прокрутки больше или равны высоте всего документа и ajax-запрос в настоящий момент не выполняется, то запускаем ajax-запрос */
if($(window).scrollTop() + $(window).height() >= $(document).height() - 200 && !inProgress) {
$.ajax({
/* адрес файла-обработчика запроса */
url: 'search_ajax.php',
method: 'POST',
/* данные, которые мы передаем в файл-обработчик */
data: {"startFrom" : startFrom},
beforeSend: function() {
inProgress = true;
}}).done(function(data){
/* Преобразуем результат, пришедший от обработчика - преобразуем json-строку обратно в массив */
data = jQuery.parseJSON(data);
if (data.length > 0) {
$.each(data, function(index, data){
/* Отбираем по идентификатору блок со статьями и дозаполняем его новыми данными */
$(".result_search_table").append("<tr><td>" + data.name + "</td> <td>" + data.nameScore + "</td> <td>" + data.organization + "</td></tr>");
});
inProgress = false;
startFrom += 100;
}});
}
});
});
Обработчик ajax-запроса
$startFrom = $_POST['startFrom'];
$res = mysqli_query($connect, "SELECT * FROM `test_excel` WHERE `noSpaceName` LIKE '%".$startFrom."%' OR `nameScore` LIKE '%".$startFrom."%' OR `organization` LIKE '%".$startFrom."%' LIMIT {$startFrom}, 100");
$resSeacrh = array();
while ($row = mysqli_fetch_assoc($res)) {
$resSeacrh[] = $row;
}
echo json_encode($resSeacrh);