Могут ли новые сообщения появляться сверху вместо снизу?

Всем привет,

Я переносю онлайн-сообщество на новое программное обеспечение для форумов. 15 лет постов (55 000 записей). Старая платформа — IP Board. Все посты идут одной длинной лентой. Нам не нужны отдельные темы.

Может ли Discourse:

  1. Показывать новые сообщения вверху, а не в конце ленты.
  2. Запоминать последнее место просмотра пользователя?

То есть, когда пользователь заходит в Discourse, может ли система запомнить его последнюю «непрочитанную» позицию, чтобы показать, где он остановился, а затем пользователь просто прокручивает ленту вверх, чтобы прочитать новые сообщения?

Мне нравится функция встроенных ответов в Discourse, но нам не нужно создавать новые темы. Мы будем полностью жить и работать в рамках одной темы.

Спасибо.

1 лайк

У вас есть 55 000 сообщений в одной теме? :thinking:
Как комментарий? И порядок обратный.
Но «первое» сообщение — это основное сообщение темы; не знаю, можно ли здесь это изменить.

Вопрос №2 решён в Discourse: система «помнит», где пользователь остановился при чтении, и когда он возвращается, размещает его на последнем прочитанном сообщении.

3 лайка

Спасибо за ответ. Что такое «пост-комментарий»? Когда я смотрю на примеры форумов Discourse и захожу в тему, все новые сообщения появляются внизу.

На нашем форуме можно нажать «Новое сообщение», и оно появится сверху. Также есть кнопка «Ответить». Она работает так же, как «Новое сообщение», но добавляет в начало текста фразу «Ответ пользователю User4532». Всё выстраивается в одну длинную ветку, где новые сообщения появляются сверху.

Размещение новых сообщений внизу, как обычно в Discourse, возможно, приемлемо, но я не хочу прокручивать 55 000 сообщений каждый раз при входе на форум. Можно ли размещать новые сообщения сверху?

В этом нет необходимости, система запомнит, где вы остановились. Кроме того, вы всегда можете нажать Shift+L в теме, чтобы перейти к первому непрочитанному сообщению.

4 лайка

По-моему, ни один из ответов не затрагивает главную проблему: насколько я понял из The MEGATOPIC: public good, or public menace?, у Discourse нет ни малейшего шанса корректно обработать 55 000 ответов в одной теме и при этом работать нормально (читай: с высокой производительностью).

4 лайка

Ответ на главный вопрос — нет: новые ответы всегда добавляются в конец. Однако позиция чтения сохраняется для авторизованных пользователей.

3 лайка

В чём особенность такого количества постов, и особенно что делает Discourse лучше другого программного обеспечения для форумов?

Я имею в виду, что в phpBB или vBulletin это довольно просто: при чтении одновременно отображается лишь ограниченное число постов.

Например, на немецком форуме в этой теме 200 тысяч постов:

С технической точки зрения, то есть с точки зрения хранения данных, не должно быть большой разницы между хранением 200 тысяч тем по одному посту в каждой и одной темы с 200 тысячами постов. В SQL-базе данных это просто идентификатор, к какой теме относится тот или иной пост. Таким образом, оба сценария довольно похожи.

Так является ли единственной «проблемой» следующее? → Discourse, похоже, загружает слишком много постов сразу, поскольку самый свежий пост находится внизу, то есть сверху всё должно быть загружено? Это может легко вызвать проблемы, особенно в отношении рендеринга в браузере (переполнение памяти на стороне пользователя)?

1 лайк

Стандартное поведение: Новые ответы всегда отображаются внизу.

Что ж, я не утверждаю, что это возможно — я не эксперт в фронтенд-программировании, но Я ВЕРЮ, что если использовать JavaScript для манипуляции DOM, мы сможем (?) изменить порядок отображения элементов.

У меня нет знаний или опыта, чтобы утверждать, что мы могли бы создать компонент темы… Не знаю, смогут ли гуру, занимающиеся такой разработкой, сделать это бесплатно, или, возможно, нужно запросить это в Marketplace, чтобы получить такой компонент (если это вообще возможно).

Конечно, при более чем 20 ответах это было бы безумием, потому что изменение порядка на уровне фронтенда означает, что сначала страница должна загрузить все ответы, а затем JS манипулирует элементами, чтобы изменить их порядок. Это приведёт к значительному замедлению работы, чем больше ответов в теме.

Одно дело — отображать информацию, и совсем другое — чтобы в реальном времени, когда пользователь отвечает, ответ «встраивался» выше других, а не ниже, как это принято по умолчанию в форуме. Не уверен, что это вообще достижимо. :thinking:

1 лайк

Потребности вашего сообщества, скорее всего, будут гораздо лучше удовлетворены с помощью программы для чата. Мне не известно о таких, которые позволяют сообщениям появляться сверху, но они гораздо лучше справляются с паттерном «все обсуждения в одном потоке», чем форум.

Некоторые варианты для рассмотрения: Zulip, Mattermost, Discord, Slack.

3 лайка

Закрыто в пользу Can discourse display topic replies in reverse order?