Глюк с потеряй непрочитанных сообщений [Решено]

Изображение пользователя kot040188.

Если кто-нибудь помнит, я давно писал про то, что часто теряю непрочитанные сообщения из-за того, что форум их не подсвечивает как новые. Это проблема уже поднадоела, особенно в больших темах, где найти новое сообщение без подсветки нереально. Недавно вычислил из-за чего это происходит. Во время чтения темы, кто-то может написать новые сообщения, перейдя по ссылке "новое на сайте" или обновив страницу, можно увидеть их подсвеченными. Но если читая такую тему написать в ней сообщение, новые сообщения других пользователей, которые я ещё не видел, уже не будут подсвечены как непрочитанные. Надеюсь на исправление этого глюка =)

+2
dm - 3 Март, 2015 - 11:12
Изображение пользователя dm.

теряю непрочитанные сообщения из-за того, что форум их не подсвечивает как новые.

Все непрочитанные сообщения отмечены отдельным значком.

особенно в больших лесах, где найти новое сообщение без подсветки нереально.

Для этого специально существуют ссылки "к следующему новому" и в "Новое на сайте" переводящие сразу к новым непрочитанным сообщениям. Что бы не было необходимости искать их прокруткой.

Во время чтения темы, кто-то может написать новые сообщения, перейдя по ссылке "новое на сайте" или обновив
страницу, можно увидеть их подсвеченными.

Этого предложения вообще не понял... Как раз после обновления страницы непрочитанные сообщения вообще то прочитанными считаются.

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

Захожу в тему с непрочитанными сообщениями, добавляю новый комментарий, все непрочитанные сообщения остаются не прочитанными. Что я делаю не так?

0
kot040188 - 3 Март, 2015 - 13:26
Изображение пользователя kot040188.

Довайте медленно, по шагам. Я захожу в тему, читаю её. Долго читаю, допустим часа 2! Страницу не обновляю! Естественно за это время в ней могут появится новые сообщения, и чтобы их увидеть нужно обновить страницу или перейти на вкладку "новое на сайте" и они будут подсвечены красными иконками. Что непонятного? Зачем я вам объясняю работу сайта… Так вот если перед тем как обновлять страницу или переходить в "новое на сайте", я добавлю сообщение в тему (или отредактирую старое), то новые сообщения других участников написанные ими во время моего чтения темы (их я ещё не видел, ибо не обновлял страницу), не будут подсвечены красными иконками нигде! Форум посчитает их прочитанными, при том, что я их ещё не видел, т.к. не обновлял страницу! Что тут непонятного? Могу ещё медленней, по буквам…

0
dm - 3 Март, 2015 - 16:03
Изображение пользователя dm.

Теперь понятно. Такое действительно возможно. Происходит это по той причине, что при добавления нового комментария обновляется время последнего доступа к материалу у того пользователя который добавил комментарий. И потому все непрочитанные комментарии считаются уже просмотренными.

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

Что с этим делать пока не знаю.

0
kot040188 - 3 Март, 2015 - 16:18
Изображение пользователя kot040188.

Ну слава богу. А то мне говорят, что я не умею объяснять… =) Для новой темы это может быть пустяком, но вот для старых, больших - это проблема…
Сделано это для того, что бы пользователю не показывались его же комментарии как не прочитанные
Может как-то игнорировать собственные сообщения при подсветке… А вообще не страшно, если будут подсвечены свои…

0
Fogma - 3 Март, 2015 - 16:50
Изображение пользователя Fogma.

виси всё время на списке тем, или перед тем как написать комментарий обновляй страницу. других вариантов пока ,насколько я понимаю, нет.

0
kot040188 - 3 Март, 2015 - 16:57
Изображение пользователя kot040188.

виси всё время на списке тем
Я так и делаю. Как это поможет?
или перед тем как написать комментарий обновляй страницу
Если тема большая, то прока от обновления мало, ибо я могу находится внизу, а новые сообщения вверху темы (или наоборот, непринципиально). В итоге всё равно придётся перечитывать всю тему в поиске первого нового сообщения. Дальше конечно уже проще…

0
dm - 3 Март, 2015 - 17:21
Изображение пользователя dm.

А вообще не страшно, если будут подсвечены свои…

Дело не в подсветке. Они будут в "Новое на сайте" показываться. Т.е. ты только что тему откомментировал и у тебя в "Новое на сайте" будет показывать, что в этой тебе новый комментарий (твой).

Система определяет новые комментарии сравнивая последнее время просмотра темы пользователем и время добавления комментариев. Разницы по авторству для нее нет.

И так будет у всех пользователей, если отключить пометку прочитанных. ИМХО никому это не нужно, только путаницы добавит.

0
kot040188 - 3 Март, 2015 - 18:40
Изображение пользователя kot040188.

Дело не в подсветке. Они будут в "Новое на сайте" показываться. Т.е. ты только что тему откомментировал и у тебя в "Новое на сайте" будет показывать, что в этой тебе новый комментарий (твой).
Действительно об этом я не подумал…
Разницы по авторству для нее нет.
Стоит добавить такой функционал…

+1
MacLeod - 4 Март, 2015 - 00:21
Изображение пользователя MacLeod.

Проблему вполне можно расценивать как баг.
Добавление поста происходит через ajax (хмлхттпреквест), при этом идет отправка данных, скорее всего инсерт в базу. Функционально просмотра темы при этом не происходит, даже если в ответ приходят данные о местоположении поста и прочая лабуда.
Пофиксить можно следующим образом: наверняка обработку ajax запроса выполняет отдельный метод. Нужно запретить этому методу менять время просмотра темы для юзера. В менее приятном случае, этот метод вызывает что-то другое. Тогда нужно передать в эту другую функцию параметр, который будет определять, нужно ли апдейтить время просмотра.
З.Ы. Еще прямо руки чешутся пофиксить жуткую задержку при отображении страниц - видимо, как раз куча тормозных sql запросов высчитывают время просмотра тем...

0
kot040188 - 4 Март, 2015 - 09:35
Изображение пользователя kot040188.

Проблему вполне можно расценивать как баг.
Назовём это недоработкой конструкции =)
Задержек я не наблюдаю…

+1
dm - 4 Март, 2015 - 08:12
Изображение пользователя dm.

Пофиксить можно следующим образом: наверняка обработку ajax запроса выполняет отдельный метод. Нужно запретить этому методу менять время просмотра темы для юзера.

Тогда, как я уже говорил, для авторов их же сообщения будут отображаться как новые, в том числе и в "Новое на сайте".

З.Ы. Еще прямо руки чешутся пофиксить жуткую задержку при отображении страниц

Жуткая задержка это примерно сколько? У меня любая страница ну максимум секунду грузится. Для анонимых, так вообще летает.

+1
MacLeod - 4 Март, 2015 - 12:30
Изображение пользователя MacLeod.

Тогда, как я уже говорил, для авторов их же сообщения будут отображаться как новые, в том числе и в "Новое на сайте".
Ну так замечательно. Только это другая проблема, и, если она решена таким образом - это неправильно.
Кто мешает делать элементарную проверку, при нахождении новых сообщений для пользователя, исключая его собственные? Если это делается в цикле - добавить в начало его тела одну строку вроде
if (message_author_id == logged_in_user_id) continue;
а если в SQL запросе - исключить, при подсчете, сообщения с author_id залогиненного пользователя из выборки.
Жуткая задержка это примерно сколько? У меня любая страница ну максимум секунду грузится. Для анонимых, так вообще летает.
До сего дня стабильно была секунду-полторы. Загрузка - это одно, а генерация страницы - другое. Для генерации страницы норма - тысячные секунды, а секунда - имхо, это уже жесть.

0
kot040188 - 4 Март, 2015 - 13:32
Изображение пользователя kot040188.

Только это другая проблема, и, если она решена таким образом - это неправильно
Поддерживаю, я об этом намекал выше… =)
До сего дня стабильно была секунду-полторы
Ну не знаю, форум kubuntu.ru хоть и не самый быстрый, но вполне шустрый… Бывают совсем тяжёлые случаи…

0
dm - 4 Март, 2015 - 13:39
Изображение пользователя dm.

Ну так замечательно. Только это другая проблема, и, если она решена таким образом - это неправильно.

Так реализована проверка в ядре друпала, не я её придумывал.

0
MacLeod - 4 Март, 2015 - 15:22
Изображение пользователя MacLeod.

Против вас абсолютно ничего не имел) Просто рассуждал.

0
akal - 4 Март, 2015 - 11:48
Изображение пользователя akal.

Да ладно вам наезжать-то. Все нормально работает, дотошные вы наши =). У некоторых наверное слишком много свободного времени :Р.

0
kot040188 - 4 Март, 2015 - 11:55
Изображение пользователя kot040188.

А вы не считайте чужое время =) Лично я наезжать никак не могу, ибо у меня нет ни прав, ни мотоцикла, ни велосипеда… =)

+1
MacLeod - 4 Март, 2015 - 13:01
Изображение пользователя MacLeod.

Да какие наезды... Просто советы, с которыми есть полное право меня послать далеко и надолго =)

0
kot040188 - 4 Март, 2015 - 13:33
Изображение пользователя kot040188.

Вот и первое потерянное сообщение в теме =)

0
dm - 4 Март, 2015 - 13:42
Изображение пользователя dm.

Костыльно решил следующим образом: перед отправкой нового комментария проверяется, не появились ли в теме новые комментарии и если появились, время доступа к материалу обновляться не будет. Минус в том, что авторский комментарий так же будет отмечен новым, зато другие не прочитанные так же будут помечены как надо.

0
kot040188 - 4 Март, 2015 - 13:55
Изображение пользователя kot040188.

У меня последние два сообщения, при отправке вываливали ошибки, при этом отправлялись, но форма ответа не закрывалась. Это как-то связано?

0
dm - 4 Март, 2015 - 13:57
Изображение пользователя dm.

Да. Больше так не будет.

0
kot040188 - 5 Март, 2015 - 21:34
Изображение пользователя kot040188.

Вы выше писали:
Они будут в "Новое на сайте" показываться
Но такого не наблюдаю. Вы как-то обошли это? =)

+1
dm - 5 Март, 2015 - 22:12
Изображение пользователя dm.

Они будут показываться, если произошел случай описанной в вашей ситуации. В других случаях, все будет так же как и было раньше.

0
kot040188 - 5 Март, 2015 - 22:14
Изображение пользователя kot040188.

Понял =)

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры