LINUX.ORG.RU

История изменений

Исправление KennyMinigun, (текущая версия) :

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

Ну, например так (один дополнительный 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, :

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

Ну, например так (один дополнительный 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, :

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

Ну, например так (один дополнительный 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>