DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?

Как правильно делать «горячие/интересные» посты?

Второй день думаю над тем, как должен работать алгоритм интересных новостей. Понятно, что каким-нибудь кроном делается выборка всех постов и потом ранжируется. Проблема возникает чуть дальше.
Например, после очередного ранжирования получился следующий список:
1, 2, 3, 4, 5, 6, 7, 8, 9
Пользователю эти записи выдаются по 4 штуки на страницу.
Пользователь открывает страницу и видит:
1, 2, 3, 4
Далее запускается кроновское задание и перераспределяет страницs. То есть после текущего ранжирования получается следующий список:
1, 5, 6, 4, 3, 2, 7, 8, 9
И когда пользователь перейдёт на вторую страницу, сервер ему выдаст записи, которые он уже видел:
3, 2, 7, 8

Как правильно реализовывать подобные динамические ленты?
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ответы на вопрос 3
BuriK666
@BuriK666
Компьютерный псих
Сделайте ссылку на вторую страницу что-то вроде '?list=ID&page=2'
Где ID, это id последнего списка.

Например на хабре забивают на это...

UPD: чтоб не забивать адресную строку и поисковики, можно этот ID хранить в cookie
Ответ написан
Комментировать
otezvikentiy
@otezvikentiy
Начинающий разраб
Можно сделать убрать постраничную навигацию и сделать просто что сначала отображаются 5 штук, потом когда прокрутил колесиком до конца страницы - отображаются следующие (без перезагрузки страницы), по образу как сделаны новости в ВК.
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
Правильно такие ленты строятся в зависимости от подхода.
1. Когда ранжирование является глобальным. В таком случае, каждая запись имеет некоторый ранг - вычисляемое поле, которое пересчитывается по событию. Например, когда кто-то делает к ней комментарий или по каждому седьмому просмотру. Логика расчета ранга зависит от ресурса и содержимого. Ну а дальше элементарная сортировка. Если вы хотите, вы можете исключать просмотренные статьи.
2. Когда ранжирование зависит от предпочтений пользователя. В данном случае при авторизации пользователя в фоновом процессе происходит расчет ранга или лента строится на лету. Для построения ленты на лету применяется комбинация графовых и обычных баз. Графовые могут быстро рассчитывать степень влияний предпочтений и связей пользователей между собой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы