Я недавно изучил основы SQL, Ajax и (объектно-ориентированного) PHP, которые я использовал для использования, создавая фид информации для создания пользователем. Однако в настоящее время фид загружает только 20 последних записей в базе данных (так как загрузка всех из них сразу будет иметь негативное влияние на время загрузки страницы).Это правильный способ создать систему бесконечного прокрутки на моем сайте?
Я решил, что попытка реализовать систему бесконечной прокрутки (аналогично методу, используемому Twitter и Facebook), будет лучшим решением этой проблемы, но я не совсем уверен, как это сделать.
Я знаю, что первое, что мне нужно, это функция, чтобы узнать, достиг ли пользователь в нижней части страницы. Чтобы сделать это, я написал следующую простую JQuery:
$(window).scroll(function() {
var scrollBottom = $(document).height() - $(document).scrollTop() - $(window).height();
if(scrollBottom < 200) {
// send Ajax request
}
});
Этот бит кода должен работать, но я обеспокоен риском множественных запросов Ajax отправляется на сервер, если пользователь прокрутки несколько раз, прежде чем обновлен фид сообщений.
Я понимаю, что следующее, что мне нужно сделать, это отправить запрос Ajax. Естественно, что сценарий, который в настоящее время получает первые 20 сообщений в базе данных использует линию PHP/SQL, глядя, как
$query = "SELECT * FROM table DESC LIMIT 0,20";
Я предполагаю, что мне нужно, чтобы заменить это чем-то вроде
$query = "SELECT * FROM table DESC LIMIT " . $x . "," . $x+20;
а затем создать другой скрипт, который отслеживает, сколько раз запрос Ajax был отправлен, и использовать его для определения переменной $ x, чтобы обеспечить получение правильных результатов.
Наконец-то я знаю, что мне нужно создать какую-то функцию обратного вызова, чтобы отобразить сообщения, которые были извлечены.
Это правильный (лучший) метод для создания системы бесконечной прокрутки? Также, как я могу изменить jQuery, чтобы остановить отправку нескольких запросов?
Определите «правильный» – Strawberry
если он работает = правильный. if not = wrong – nogad
Возможно, вам это интересно: http://midnightprogrammer.net/post/Infinite-Scrolling-In-ASPNET-With-jQuery/ – Velocibadgery