За последние 24 часа нас посетили 18692 программиста и 1710 роботов. Сейчас ищут 865 программистов ...

вывод новостей в режиме timeline

Тема в разделе "PHP для новичков", создана пользователем tesla, 13 май 2016.

  1. tesla

    tesla Активный пользователь

    С нами с:
    29 фев 2016
    Сообщения:
    34
    Симпатии:
    1
    Здравствуйте, подскажите пожалуйста в двух словах логику вывода новостной ленты в режиме timeline?
    То есть как сделано в большинстве новостных сайтах.
    Конечная цель сделать ленту типа такой с подгрузкой контента с помощью jquery:
    [​IMG]
     
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Как вариант, сделать таймер, который будет через время проверять наличие новой новости, и если есть - заменять уже существующую ленту на новую, но как по мне, это непрактично, поскольку при большом количество новостей, например, как ВК будет сильно нагружать сервер.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Любое решение это компромисс между простотой и достигаемым эффектом. Если это новости спорта, нет смысла слишком часто обращаться за обновлением. И конечно должно быть кеширование на сервере. Запрашивай ajax по таймеру раз 1-3 минуты, так ты большой нагрузки не создашь.

    Это же не чятик какой-нибудь. Для чата имело бы смысл связаться с вебсокетами, а значит держать отдельный демон извещений + какой-нибудь nosql и т.д. — значительное усложнение используемого стека технологий. Для ленты это неоправданные трудо- и ресурсо- затраты.
     
  4. tesla

    tesla Активный пользователь

    С нами с:
    29 фев 2016
    Сообщения:
    34
    Симпатии:
    1
    Не совсем корректно изначально поставил задачу.
    Предложенный вариант сильно сложный. Я же хочу сделать просто - выводим n-ое количество новостей в ленту и подгружаем аяксом по мере того как идет скролинг в низ страницы.
    Столкнулся с двумя сложностями:
    1) как вывести не просто SELECT * FROM news а сделать как на скрине выше - разбивку по датам.
    2) в интернете полно статей как сделать плавную подгрузку контента при скролинге страницы аяксом, но у них всех большой недостаток - в таблице news не больше 30 записей... а если у меня в таблице 5000 новостей за год?
     
  5. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    По моему, это ещё сложнее реализовать чем то о чём я подумал изначально...
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    @tesla, "группирующие заголовки" делаются так:
    Код (PHP):
    1. $result = query("... ORDER BY fld");
    2. $prev = null;
    3. while ($row = ...) {
    4.   if ($row['fld'] != $prev {
    5.     // вывод заголовка с $row['fld']
    6.     $prev = $row['fld'];
    7.   }
    8.   // выводим тело записи
    9. }
    не понял про большой недостаток. там же limit m,n используется. 30 от 5000 принципиально не отличается. да, некоторое замедление будет на очень больших m — ближе к концу списка. но до конца мало кто докрутит )))
     
  7. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Если можешь обрисуй в двух словах как это делается