Каким образом в форумах определяются "новые" сообщения?

123
KS
На сайте с 11.06.2012
Offline
17
#11
Ayavryk:
Думаю что нет. Обратите внимание, что в ссылке для нового поста нет адреса (# метки) этого самого нового поста. Там идет редирект с ссылкой на пост после определенной даты.

Верно, идёт редирект. Но откуда форум знает, на какой пост редиректить (или на какую дату) если он не запомнил раньше, в какое время вы просматривали эту тему? Правда возможен вариант, что форум запоминает не дату/время, а номер последнего поста, существовавшего на момент вашего последнего просмотра этой темы. Ну это уже нюансы, роли не играет. Я думаю, что это решили организовать через редиректы, а не через прямые ссылки с якорями, вот по какой причине: на каждый клик по одному значку "к последенму сообщению" приходятся десятки просмотров списка тем в разделе. Если готовить этот список тем уже с нужными якорями в ссылках, то на это потребуется больше ресурсов.

FileSafe (http://filesafe.anek.ws/) - мониторинг неизменности файлов сайта для защиты от взлома. Для форумчан - первый год бесплатно.
SeVlad
На сайте с 03.11.2008
Offline
1609
#12
Ayavryk:
Т.е. выставляется таймаут на сессии сколькотоминут если сессия оборвалась то идет отсчет от конца сессии. Или как?
Если можно, поподробнее.

Ну как-то так. Не знаю как сказать подробнее...

В некоторых движках даже есть настройка в админке - типа "через сколько времени считать что юзер покинул форум".

Geers:
(на всем форуме)

+150 ;)

KostaShah:
Этот факт, на мой взгляд, свитедельствует о том, что движок форума запоминает, когда вы последний раз читали каждую прочитанную Вами тему.

Чушь. Не тему, а форум. Очевидные же вещи.

KostaShah:
левее названия каждой такой темы есть значёк-ссылка, которая может перебросить Вас к первому непрочитанному Вами сообщению в этой теме.

Какой значёк?

В 2-х из этих топиков я бывал ;) в остальных нет. Обратим внимание на выделенное болдом. Думаем.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
KS
На сайте с 11.06.2012
Offline
17
#13

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

SeVlad
На сайте с 03.11.2008
Offline
1609
#14
KostaShah:
Кликаем по значку у одной из тем,

Ещё одна попытка - по какому значку?

Блин, я слепой... понял. никогда не обращал на него внимание.

KostaShah:
откуда форум узнал, на каком сообщении открыть тему.

Уверен (но надо проверить), что с последнего посещения форума. Иначе они бы были И перед всеми "старыми" топиками.

KS
На сайте с 11.06.2012
Offline
17
#15

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

Ayavryk
На сайте с 11.10.2003
Offline
209
#16
SeVlad:
Блин, я слепой... понял. никогда не обращал на него внимание

Отлегло от сердца. Я - не один такой :)

SeVlad:
"через сколько времени считать что юзер покинул форум".

Ага. Теперь понятно.

SeVlad:
Обратим внимание на выделенное болдом. Думаем.
Полуается, что KostaShah прав. Форум мало того что запоминает поведение юзера, так еще и генерирует под него список постов. Как-то сильно нагружено получится при приличной посещаемости. Мне проще будет вынести это на клиента. Если конечно буду реализовывать.
Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/
SeVlad
На сайте с 03.11.2008
Offline
1609
#17
Ayavryk:
Полуается, что KostaShah прав. Форум мало того что запоминает поведение юзера, так еще и генерирует под него список постов.

не-не.. ;) Запоминается всего лишь время последнего обращения к форуму (НЕ к конкретным разделам\топикам) - обновляется кука\timestamp в базе\етс

KS
На сайте с 11.06.2012
Offline
17
#18
Ayavryk:
Как-то сильно нагружено получится при приличной посещаемости. Мне проще будет вынести это на клиента. Если конечно буду реализовывать.

Уверяю вас, при современных вычислительных мощностях - это ерундовая нагрузка. Если будете реализовывать, я бы советовал запоминать для каждого пользователя номер последнего прочитанного им сообщения в каждой теме. Так сделано в SMF, и он отлично с этим справляется в довольно посещаемых форумах, и это очень удобно для пользователей. Просто "новые сообщения с последнего визита на форум" - мало что даёт. Может я вчера спешил, заглянул в одну темку, а сегодня не спешу, и хочу обстоятельно прочесть всё, что ещё не прочёл, но этот форум мне пометит новыми только темы, изменившиеся со вчера, хоть я может остальные 100 тем не прочёл. Обидно :(

---------- Добавлено 16.07.2012 в 06:45 ----------

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

Когда-то давно, как я упоминал, я активно общался на одном форуме. В те времена не было фейсбука, "одноклассников" и "в контакте", и люди общались в форумах. Многие (в т.ч. я) сидели на форуме часами, переходя из темы в тему. Пока напишешь что-то в одной теме, в другой уже появились новые сообщения. И, к стати, очень удобно было, что такая тема помечалась, хотя у меня длился всё тот же сеанс посещения форума.

Линии интернета были тогда узкими, страницы грузились очень долго. Порой весма раздражало, что приходислось по целой минуте ждать заргузки длинющей страницы, в которой появилось одно новое сообщение в 2 байта: "+1". И тогда я решил написать свой движок форума. Я задумался, и изобрёл две вещи: аякс, и голосования. Знаю, что это звучит смешно, и на самом деле аякс изобрёл конечно не я. Но термин аякс ввели в 2005 году, а дело было примерно в 2003. Тогда не было (хотя может и было, но я не искал) стандартных JS-библиотек для работы с аяксом, да и стандарта для XmlHttpRequest не было, был только проприетарный микрософтофский синтаксис работы с ним, и 99% рынка браузеров занимал IE. Поэтому я написал клиентскую сторону движка под IE, и форум работал только в нём.

Когда посетитель заходил на форум (начинал сеанс), открывал тему, то для него загружались 10 последних прочитанных им сообщений в этой теме + все непрочитанные. Все эти сообщения сохранялись в памяти его компьютера, в формате XML, в течение сеанса. Если он переходил в другую тему, а затем, когда в первой добавлялись новые сообщения, возвращался в неё, то с сервера подгружались только эти новые сообщения, и пользователю снова показывались 10 уже прочитанных (из памяти) + новые (с прокруткой к первому новому).

Что касается голосований, речь идёт не о темах-голосованиях, а о голосованиях за и против каждого сообщения. Сейчас похожая система, с голосованием за коментарии, реализована в большом количестве проектов, начиная с хабра. Но в отличие от коментариев, сообщения форума не сортировались по количеству голосов. Количество проголосовавших за сообщение (как бы, поддерживающих мысль, присоединяющихся), и против (возражающих, протестующих), указывалось в види миниатюрной графической диаграммы (двумя цветными дивами) под каждым сообщением. Это позволяло избавиться от таких неинформативных новых сообщений, как "+1" или "чушь". И если пользователю давали, к примеру, совет, то он мог легко увидеть, сколько людей одобряют этот совет, а сколько протестуют против него. И эти одобрения и протесты делались легко, одним кликом.

К сожалению, у меня не хватило запала переработать этот движок для кросс-браузерности, и я его бросил. Сейчас можно глянуть на него (только в IE) на одном, тоже брошеном, сайтике: http://bela-massage.info/forum/ . Если интересно, попробуйте открыть одну длинную тему, потом вторую, а потом вернуться в первую, и обратите внимание, сколько времени уйдёт на её показ.

Ayavryk
На сайте с 11.10.2003
Offline
209
#19
SeVlad:
не-не.. ;) Запоминается всего лишь время последнего обращения к форуму (НЕ к конкретным разделам\топикам)

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

KostaShah:
Уверяю вас, при современных вычислительных мощностях

Мне проще повесить это на фронтенд. Все равно использую Storage. Из того что читал про SMF отложилось что он достаточно нагруженный.

KostaShah:
Расскажу о своём опыте реализации движка форума.

Любопытно. Я знаю похожий форум. Он был замешан на XML и возможности динамической замены src для них в ie5. Т.е. в HTML менять можно src только для картинок или фреймов, а в самом лучшем интернет- броузере IE5 (без тени иронии) можно было делать замену практически любому элементу DOM. При этом напрямую обращения к асинхронному запросу вроде даже как и не было. Все это было сделано где-то в 2001 году за несколько лет до начала развития AJAX. и в таком виде он существовал достаточно долго. Насколько я помню вебмастер даже что-то предусматривал для роботов.

SeVlad
На сайте с 03.11.2008
Offline
1609
#20
Ayavryk:
Если бы не запоминалось время обращения к топикам, не могло бы получиться той картинки, которую вы продемонстрировали с разным HTML-форматированием из прочтенных и непрочтеннных . Т.е. подсчет сообщений - сам по себе, так как вы написали, + отметка прочтенных сообщений среди "новых" в сессии или действительно в бд.

ммм.. Тут не могу с уверенностью сказать, думаю всё та же кука. Однако хочу обратить внимание на баг ;): если кликнуть на последнее сообщение (иконка справа от юзера его написавшего ) и таким образом прочитать топик, то при возвращении в раздел (в подписки\мой кабинет) топик остаётся выделенный болдом. Если же кликать на топик\последнюю страницу, то болд снимается.

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

Ayavryk:
Добро пожаловать, Имярек.
758 новых сообщений

об чём выше и весть тред. ;)

АПД.

Вот я написал текст выше и перешел в раздел и..:

как будто бы я тут не был ;)

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий