Здравствуйте, подскажите пожалуйста в двух словах логику вывода новостной ленты в режиме timeline? То есть как сделано в большинстве новостных сайтах. Конечная цель сделать ленту типа такой с подгрузкой контента с помощью jquery:
Как вариант, сделать таймер, который будет через время проверять наличие новой новости, и если есть - заменять уже существующую ленту на новую, но как по мне, это непрактично, поскольку при большом количество новостей, например, как ВК будет сильно нагружать сервер.
Любое решение это компромисс между простотой и достигаемым эффектом. Если это новости спорта, нет смысла слишком часто обращаться за обновлением. И конечно должно быть кеширование на сервере. Запрашивай ajax по таймеру раз 1-3 минуты, так ты большой нагрузки не создашь. Это же не чятик какой-нибудь. Для чата имело бы смысл связаться с вебсокетами, а значит держать отдельный демон извещений + какой-нибудь nosql и т.д. — значительное усложнение используемого стека технологий. Для ленты это неоправданные трудо- и ресурсо- затраты.
Не совсем корректно изначально поставил задачу. Предложенный вариант сильно сложный. Я же хочу сделать просто - выводим n-ое количество новостей в ленту и подгружаем аяксом по мере того как идет скролинг в низ страницы. Столкнулся с двумя сложностями: 1) как вывести не просто SELECT * FROM news а сделать как на скрине выше - разбивку по датам. 2) в интернете полно статей как сделать плавную подгрузку контента при скролинге страницы аяксом, но у них всех большой недостаток - в таблице news не больше 30 записей... а если у меня в таблице 5000 новостей за год?
@tesla, "группирующие заголовки" делаются так: Код (PHP): $result = query("... ORDER BY fld"); $prev = null; while ($row = ...) { if ($row['fld'] != $prev { // вывод заголовка с $row['fld'] $prev = $row['fld']; } // выводим тело записи } не понял про большой недостаток. там же limit m,n используется. 30 от 5000 принципиально не отличается. да, некоторое замедление будет на очень больших m — ближе к концу списка. но до конца мало кто докрутит )))