ПочтаВыйтиРеклама на порталеИркутскАгинское

Чита.Ру — Информационный портал Читы и Забайкальского края

 

МНЕНИЯЧИТЫ И ЗАБАЙКАЛЬСКОГО КРАЯ

 

Поведенческие особенности рейтинга комментариев на «Чита.Ру»

/ Мнения / Сергей Мастеров

В последнее время поступило несколько жалоб от посетителей портала на то, что после рейтингования комментариев на Читинском городском портале (когда пользователь кликает на «+» или «-») происходят непонятные вещи. Например, нажали на «+», когда на счетчике было «+3», после чего стало «-1».

Попытаюсь объяснить, почему такое происходит, и что мы предприняли, чтобы эту ситуацию скорректировать.

Формирование каждой страницы сайта сопряжено с множеством запросов к базе данных. Для снижения нагрузки на сервер баз данных используется технология кэширования веб-страниц, которая заключается в том, что страница после формирования запоминается на некоторое время, и в течение этого времени она заново не формируется, просто отдаётся в уже готовом виде. В нашем случае срок кэширования составляет 5 минут. По истечению срока кэширования страница формируется заново в случае обращения к ней.
Кэширование — это важный момент для дальнейшего понимания происходящего.

Теперь к сути жалоб. Давайте рассмотрим на примере.

Буквой Т обозначим момент формирования страницы, соответственно, в этот момент времени она попадает в кэш (запоминается в готовом виде).

Итак, в момент Т у нас сформировалась страница с новостью, на одном из комментариев которой стоит рейтинг «+3».

Пользователь А в момент времени (T+1 минута) нажимает на кнопку «-».

В этот момент происходит следующее:
1. Браузер пользователя отдаёт запрос серверу на уменьшение рейтинга комментария и одновременный запрос на получение его нового значения.
2. Сервер смотрит в базе данных реальный рейтинг комментария (он у нас +3), уменьшает его, возвращает браузеру «+2»
3. Браузер новый результат меняет на экране компьютера.

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

Пользователь B в момент времени (T+2 минуты) просматривает страницу (видит рейтинг +3) нажимает на кнопку «, ожидает получить результат (+2).

В этот момент происходит следующее:
1. Браузер пользователя отдаёт запрос серверу на уменьшение рейтинга комментария и одновременный запрос на получение его нового значения.
2. Сервер смотрит в базе данных реальный рейтинг комментария (он уже +2), уменьшает его, возвращает браузеру «+1».
3. Браузер новый результат меняет на экране компьютера.

Пользователь думает: «Странно, хотел уменьшить рейтинг на единицу, а он уменьшился на 2, ну и бог с ним, уменьшился и ладно”. Никакой паники.

Пользователь С в момент времени (T+3 минуты) просматривает страницу (видит рейтинг +3) нажимает на кнопку «, ожидает получить результат (+4).

В этот момент происходит следующее:
1. Браузер пользователя отдаёт запрос серверу на увеличение рейтинга комментария и одновременный запрос на получение его нового значения.
2. Сервер смотрит в базе данных реальный рейтинг комментария (он уже +1), увеличивает его, возвращает браузеру «+2».
3. Браузер новый результат меняет на экране компьютера.

И вот тут пользователь страшно негодует. Было +3, нажал на +, а стало +2. Вместо увеличения он уменьшился! В «Чита.Ру» работают жулики и подлецы!

А теперь представьте, что новость одновременно читает не три пользователя A, B и С, а сотни человек. Такое на Читинском городском портале происходит постоянно.

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

Решено было одновременно с рейтингом показывать количество проголосовавших и время формирования результата. Пользователяю C в нашем примере будет видно, что после его нажатия изменилось не только значение рейтинга, но и количество проголосовавших увеличилось не на единицу (его самого), а на три. Значит было ещё два человека, которые повлияли на результат.

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

Такая интересная особенность реализовалась благодаря нашим бдительным читателям.

За что им огромное спасибо.


читару,комментарии
  • ЧИТАЙТЕ ТАКЖЕ

  • Самое читаемое за сутки

  • Самое комментируемое за сутки

 

ОБСУЖДЕНИЕ

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

Поддержу в части всплывающего окошка: Вы уверены что это вам надо?

Раз я нажал "показать" - значит надо.

Зачем переспрашивать?

Уверены?

Точно уверены?

Точно при точно? или может быть еще чуток подумаете?

Хорошо показываю, но только галочку поставьте? что я вас предупреждал!

Хм. Когда видишь "+8 16 чел., 20:23", то не сразу сообразишь, что одобривших тут 12 человек

А еще хуже, что там может быть целая ветка комментариев спряталась. Лучше бы убрали скрытие. Тем более, что на Чита.ру и так жёсткая цензура, так что ничего такого мы там не увидим

Неплохая статья. Она немного повысит уровень образованности местной аудитории в этой области

Молодцы, не стоите на месте. Идея писать кол-во проголосовавших здравая, теперь многое прояснится, думаю. Я не специалист в теме, но по-моему лукавите немного, говоря про кэширование. Допустим, за него отвечает memcache. Вася ставит "-", рейтинг становится "-1", в memcache "-1", в mysql (или что там у вас) ещё пока "0". Тут Петя ставит ещё "-", рейтинг становится "-2", в memcache "-2", в mysql ещё пока "0" (пять минут после Васи не прошло), Ajax (например) показывает Пете вполне актуальные "-2" (т.е. берёт рейтинг из кэша, а не базы где пока "0"). Что мешает nginx (надеюсь) отдавать рейтинг сразу из кэша (того самого где берёт ajax), а не из базы, а базу с кэшем синхронизировать прозрачно от посетителей? Ведь так количество запросов к базе упадёт, и рейтинг всегда будет актуальный.

а почему бы отдельно + и - не показывать?

Прописные истины разжевали.

У большинства пользователей есть понимание работы сайтов и негодования не возникает.

Это говорит о том, что негодующие это неграмотные (в плане компа) люди, либо малолетки, которые умеют только одну кнопку на мешке жать.

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

не любит Читару критики в свой адрес, ох не любит.

А еще когда отзыв пишешь, то все имеющиеся комментарии скрываются. Я, может, перечитать их хочу, сравнить, процитировать, поддержать, опровергнуть или просто ответить на несколько высказываний сразу. Приходится две вкладки открывать и скакать туда-сюда за нужным текстом.

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

такя-же ситуация. а ты попробуй попеременно

+и- понажимать, удивишься! только не пропустят меня!

"+" затем "-", секунд через 20 "−1 1 чел., 12:09"))))

"+1 1 чел., 12:24" ))))) "ни че не понимаю"(С)

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

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

.

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

.

в общем, нет предела совершенству. да, совершенство будет чуточку неполным, если ТРОЕТОЧИЯ так и не разрешат. не больше трех троеточий на коммент из двух абзацев - вполне в рамках нормы языка. если кого-то ответственного коробит этот замечательный знак препинания - пусть сдерживает свои порывы :-)

.

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

Смайликов! Смайлики запилите! =)

Хотя по поводу многоточия - абсолютно согласен =)

я бы всё же называл этот знак препинания многоточием)

Люди, которые на ЭТО пожаловались, просто не грамотные в плане технологий, это же блин ежу понятно, что не ты один оцениваешь комментарий, там одновременно тыкает кнопки плюс-минус как минимум пара сотен если не тысяч таких же неграмотных лиц

нас неграмотных миллионы!

самые умные кнопки тыкают, а неграмотные кликают

А что на Читу.ру можно ходить только грамотным в плане технологий. Вас там сколько наберется 10 минус два? Остальные - мы.

А почему бы не сделать "плюсы" отдельно, а "минусы" отдельно- тогда бы было понятно сколько за, сколько против. А тут как то статистика неправильная получается..

проголосовало 8 человек , их них четыре "+" сиди и считай..

От общего количества "проголосовавших" (чел.) вычитаешь количество "плюсиков" (+) и делишь пополам, получаешь количество поставивших "минусик"!

А после этого найти количество поставивших "плюсик" (путём вычитания найденного числа из общего количества "проголосовавших") не составляет никакого труда.

Так что загружать серверный компьютер лишними вычислениями вовсе не требуется.

я ради интереса ко всем комментариям сейчас ставил плюсы и минусы, наблюдая за результатом :)

Не понятно

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