Метки: good news everyone!

Всего 6 голосов

За
A.K. +1
Nekit +1
dmi +1
Иона Новоясенев +1
Калужский +1

Против
АЛС-АРС –1

Новые комментарии

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

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

Страница "Новые ответы" будет обновлена немного позже, с добавлением выборки по времени (последние 3 дня, неделя, месяц, год, за всё время).
4
Написал quantum 2007.12.05 12:42:34
Рейтинг:
quantum, неплохо бы тогда сделать функцию типа "Пометить все посты как прочитанные".
1
Написал A.K. 2007.12.05 14:02:33

Увы, не могу. Боюсь, база данных не выдержит такой нагрузки, и нас отрубят от хостинга за перерасход серверных ресурсов :)
0
Написал quantum 2007.12.05 14:43:26

Тебе виднее :) Хотя я немного не понимаю - если есть, допустим, таблица, где фиксируется факт чтения комментов, в чем сложность эту таблицу "подправлять" вручную.
PS: Сразу скажу, что в PHP я не рублю, т.к. занимаюсь клиент/серверными системами, с "толстым" клиентом и сервером БД без сервера приложений.
0
Написал A.K. 2007.12.05 16:25:27

Представьте себе 2000 постов, информацию о просмотре которых надо добавить в базу одномоментно. Это очень трудоёмкая задача. Понятно, что сейчас постов гораздо меньше, но лучше не делать функцию вовсе, чем сделать и убрать потом, вызывая недовольство участников, которые привыкли ею пользоваться.
0
Написал quantum 2007.12.05 16:40:51

Вообще не понимаю, зачем это.
–2
Написал АЛС-АРС 2007.12.05 17:05:21

Это удобно.
0
Написал quantum 2007.12.05 17:09:03

>Представьте себе 2000 постов....

ОК, хорошо. Хотя с моей т. зрения это одно, не очень сложное, обновление данных в базе, выполняемое одним оператором UPDATE :) Ну или как-то так.... там же наверное MySQL юзается?
Т.е. (сугубо Imho) - наличие или отсутствие функциональности, позволяющей подсчитывать непрочитанные посты в комментах (т.е. то, что уже сделано) - это действительно потенциально существенная доп. нагрузка на сервер. А добавление к этой уже реализованной функции фичи "Прочитать все" - доп. нагрузка несравнимо меньшая.

PS: Кстати, на самом читаемом мною форуме sql.ru - тоже нет такой фичи как "Прочитать все". Но там, ради снижения нагрузки на сервер, признаки прочитанности постов вообще в базе не хранятся - а хранятся на клиенте (видимо, в cookies). То есть стоит зайти с другой машины, или просто другим браузером - и снова все топики получают пометку "new" :( На вопросы "что за фак..." разработчик движка стандартно отвечает, что сделать форум с посещаемостью 5000 человек в 20 минут, 100 000 аккаунтов и 5 млн сообщений, чтобы при этом ничего не падало и не тормозило - задача не из легких...

Впрочем, в метроблоге это уже дикий оффтоп, посему закругляюсь :)
0
Написал A.K. 2007.12.05 17:55:02

Я ориентируюсь на dirty.ru, и хотя тот написан на перле, принципиально обращения с базой это не меняет. Скрипт непрочитанных постов и новых ответов там выглядит точно также, а значит реализован похоже (или идентично). Функции "отметить все прочтёнными" нету. Посещаемость очень высокая, зарегестрировано больше 25 тыс. человек.

На самом деле не очень ясно, зачем создавать лишнюю работу для базы данных. Вы можете смотреть только те посты, которые вам интересны, а все остальные игнорировать. Я на дёрти и лепре так и делаю.
0
Написал quantum 2007.12.05 18:26:48

Ээээ, не понял, а как до этого было?
0
Написал Kardail 2007.12.06 15:32:01

Считай, что никак.

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

Правда, в условиях Метроблога этот скрипт практически не работал, и по крайней мере у меня новые ответы помечал через два раза на третий.
0
Написал quantum 2007.12.06 17:01:14

А ограничить действие этой функции по времени нельзя? Многие из нас знают, каково это, заглянуть во френдленту после отпуска... Большинство, правда, всё непрочитанное предпочитают удалить. Так и тут: вернусь я из трёхнедельного тура по Европе (ох, размечтался): перечитывать всё влом - понадобится мне - всё равно прочитаю, не понадобится - даже не загляну. А заходить в каждую тему только чтобы её отметить - это чисто техническая вещь, с которой надо бороться.

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

А вы плюсуйте, плюсуйте!..
–1
Написал Kardail 2007.12.06 17:31:17

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

В общем списке постов, опять же повторюсь, неинтересные никто не мешает просто игнорировать.
0
Написал quantum 2007.12.06 18:39:10

А если так уж прям раздражает глаза, то ничего страшного - очень скоро эти (непросмотренные) посты уедут вниз по ленте, и ты о них вообще забудешь.
0
Написал quantum 2007.12.06 18:41:39

Пишите письма: metronews@mail.ru