LINUX.ORG.RU

Автоматический переход на первое непрочитанное сообщение

 


0

1

На других форумах видел очень удобную фишку: при заходе в тему прыжок на первое непрочитанное сообщение темы. Не надо в длинных темах мотать и искать, что же написали с момента последнего захода. А можно на ЛОРе такое запилить?

★★★★★

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

mandala ★★★★★
()
Ответ на: комментарий от mandala

Нагрузка на движок будет большая (имхо)

Ну, например так (один дополнительный SQL запрос, имена вымышлены):

select n.id                      -- айдишник сообщения из уведомления
from 
  user_notifications n           -- таблица с уведомлениями
where
  n.user = :current_user         -- этот юзер
  and n.read = false             -- только непрочитанные
  and n.thread = :current_thread -- айдишник треда:
                                 -- /forum/<cat>/<current thread>
order by n.date asc              -- самое ранее непрочитанное сверху
limit 1                          -- нам нужно только самое первое

Потом, если n.id != null, на сервере отдавать 307 temporary redirect:

/forum/<cat>/<current thread>?cid=<n.id>

Правда, лучше сделать отключаемой опцией.

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 2)
Ответ на: комментарий от KennyMinigun

А, чего-то я подумал, что «непрочитанное уведомление»

KennyMinigun ★★★★★
()

Не нужно. Совсем. Тебе тема либо интересна, либо тебе насрать, где ты там остановился в прошлый раз.

Stil ★★★★★
()
Ответ на: комментарий от Deleted

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

Конечно, для этого нужен жаваскрипт, от которого у многих здесь бомбанет...

KennyMinigun ★★★★★
()

Согласен, надоедает перематывать тему всякий раз как надо просмотреть последнее сообщение.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

Конечно, для этого нужен жаваскрипт, от которого у многих здесь бомбанет...

Пофиг что бомбанет. Фича удобная. Кому не нужно - может просто не пользоваться.

Но с яваскриптом будут проблемы изза пагинации. То есть если ты дочитал до стр.3, коммента ###, то не факт что этот коммент завтра будет таки на стр.3.

drull ★☆☆☆
()
Последнее исправление: drull (всего исправлений: 1)
Ответ на: комментарий от mandala

О да, запрос к табличке ({{user_id, topic_id}}, last_seen_comment_id), где {{...}} - primary key - это ппц какая нагрузка.

drull ★☆☆☆
()

Посмотри в адресную строку видишь там «lastmod=<куча_цифр>»? Сейчас всё реализовано через этот timestamp, там unixtime + что-то ещё. При чём это число уже есть в ссылке на странице, из которой ты открыл текущую.

yurikoles ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.