Я создал прокрутку вниз, используя php и jquery, и это работает.
Моя проблема: мы предполагаем, что у нас есть 20 данных, и мы на первой странице (10 данных на страницу), пользователь хочет отобразить вторую страницу, на данный момент 3 новые данные были созданы и добавлены в базу данных.
Таким образом, результат второй страницы будет другим, и некоторые данные на первой странице будут отображаться снова.
Как я могу понять это?
Большинство сайтов с бесконечной прокруткой (которые отображают больше контента при прокрутке вниз, как в вопросе) сортируются в хронологическом порядке, что означает, что новый контент будет добавляться только в начало или конец списка. Теперь контент, добавляемый в конец результатов, в большинстве случаев не имеет значения, поэтому основной проблемой здесь является отображение элементов, которые должны появиться до того, как элементы уже отображаются.
(Как примечание, я не имею в виду контент, который должен появляться между уже отображаемыми результатами, поскольку динамическое изменение порядка элементов является кошмаром для пользователя и его следует избегать, если это возможно.)
Чтобы справиться с этим, проще всего просто продолжить выборку с идентификатора последнего показанного пункт, как вы прокрутите вниз. Если новые данные будут добавлены к набору данных, к которому я применил, я бы предложил отобразить некоторую форму уведомление или баннер, информирующий пользователя о новом контенте, доступен, и загружайте новый контент / перезагружайте страницу только в том случае, если пользователь нажимает на него.
Причина этого заключается в том, что новые данные, созданные в то время, когда пользователь уже воздействовал на набор данных, могут не иметь отношения к тому, что пользователь делает в настоящее время. Например, если пользователь просто хочет обновить N уже отображенных записей, приложение должно просто позволить им завершить то, что они делают, вместо того, чтобы автоматически вставлять элементы в список и, возможно, возиться с текущим рабочим процессом.
Предполагая, что у вас есть бесконечная прокрутка, работающая на вашем сайте, и большая часть этого уже реализована.
$dataList.on('scroll', function() {
var newData = false;
if (endOfPage) {
$dataList.append(getNextInList())
newData = checkForNewData();
if (newData) {
newDataNotification();
}
}
});
Других решений пока нет …