Глючит подсветка непрочитанного.

Обсуждение дизайна и функциональности сайта и форума.
Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Глючит подсветка непрочитанного.

Сообщение Q2W » 15.10.2006 (Вс) 22:39

Давно, кстати, глючит.
То темы/посты/форумы, которые я только что прочёл становятся прочитанными минут через 20.
То наоборот: сейчас звхожу на форум: все прочитаны (хотя я не был на нём как минимум сутки, точно не помню), только форум vbstreets не прочитан. Захожу в него - всё прочитано. Т.е. в новых постах/новый и непрочитанных топиках/непрочитанных форумах не обновляется флаг о непрочтённости.

P.S.: Я когда писал свой форум, понял, что помечать посты/топики/форумы как прочитанные/непрочитанные жутко долго, т.к. в результате имеем кол-во информации примерно равное кол-ву юзеров * кол-во прочтённых (либо не прочтённых) постов (топиков/форумов). Это очень много. Долго обновляется. Может в IPB эта проблема решена? Может там какой-нить хитрый алгоритм на эту тему?
Я знаю верный путь

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.10.2006 (Вс) 23:12

Q2W
Прочитанность/непрочитанность хранится в твоих же куках.
При завершении сессии флаг прочитанности ставится всем постингам.

А теперь самое интересное: откуда баг и как его убрать.
Опять досталось phpBB да? Вот так всегда... все проблемы со здоровьем списывают на Экологию, а все проблемы с брозером - на движок.
Проблема не в форуме, а в том что броузер кэширует страницы. И получается что страница с "непрочитанными сообщениями" однажды закешировавшись, показывается вам и в дальнейшем, даже когда вы всё прочли.

Есть польностью отключить кэширование - проблема решается.
Однако тогда увеличивается трафик. Так что Бог с ней, с этой проблемой.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 16.10.2006 (Пн) 0:34

Хакер писал(а):При завершении сессии флаг прочитанности ставится всем постингам.

Вот это очень зря. Ибо по завершении сессии я могу и не прочитать все посты.

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

Есть польностью отключить кэширование - проблема решается.
Однако тогда увеличивается трафик. Так что Бог с ней, с этой проблемой.

Не, если полностью отключить кеширование - проблема не решается.

P.S.: Как хорошо, когда форум ориентирован только на web, и, с очень большой вероятностью, можно предположить, что юзер использует кукисы...
Я знаю верный путь

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.10.2006 (Пн) 0:37

Значит сервер тоже кэширует страницу index.php

Вобщем, дело не в форуме.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2006 (Пн) 7:26

Хакер писал(а):Q2W
Прочитанность/непрочитанность хранится в твоих же куках.
При завершении сессии флаг прочитанности ставится всем постингам.

А нельзя ли эту сессию продлить подольше, за момент закрытия браузера?
Тыщу раз было, что случайно закрыл окно, и все посты "прочитались".
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.10.2006 (Пн) 7:33

Тогда другой глюк вылезет.
Можно указать сессию без срока жизни, тогда она аннулируется при закрытии браузера.
Можно указать какой-нибудь конкретный срок, тогда сессия может аннулироваться, пока у тебя все еще запущено окно браузера.
Указать "аннулировать через 10 минут после закрытия браузера" нельзя, насколько я знаю.
Правда можно попробовать пошаманить с двумя куками. Первая будет обычная, на срок жизни браузера, а вторая будет продлеваться на полчаса при открытии любой страницы.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2006 (Пн) 7:58

А можно указать срок "через месяц"?
Вряд ли кто держит браузер открытым по месяцу.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.10.2006 (Пн) 8:39

Но вполне может держать открытым через месяц минус 10 минут.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 16.10.2006 (Пн) 9:10

При завершении сессии флаг прочитанности ставится всем постингам.
Судя по моим наблюдениям, признак прочитанности ставится при открытии дополнительной копии броузера (IE) с форумом. Если вторую копию не открывать и закрыть первую, то непрочитанные посты так и остаются непрочитанными, а когда через несколько часов открываешь сайт, например, из дома, то все, как надо.
Лучший способ понять что-то самому — объяснить это другому.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 16.10.2006 (Пн) 9:21

У меня по моим наблюдениям, глючит FireFox. Тут сколько вкладок не открывай, по понятным только одному браузеру причинам, признак прочитанности ставится совсем странным образом. Переодически, даже если тема была прочитана, браузер со всеми вкладками закрыт, если открыть через пару часов, то тема будет все равно не прочитана, при условии, что в нее никто не постил. Вариант глюка другой, если тему прочитать, вкладку с ней добросовестно закрыть, и обновить главную страницу, или страницу подфорума, то она все же не прочитана. Обычно приходится самостоятельно отмечать форум, как прочитанный. Хотя чаще бывает комбинированный глюк - часть тем все же отмечается, как прочитанные сразу, а некоторые остаются, даже если зайти в них по несколько раз. Кеш страниц отключен. В IE подобных глюков не наблюдалось. Как лечить?
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.10.2006 (Пн) 9:22

Постоянно открываю подфорумы/темы в новом окне браузера, прочитанность не слетала ни разу.
Lasciate ogni speranza, voi ch'entrate.

August
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 25.08.2006 (Пт) 10:48
Откуда: C сибири

Сообщение August » 16.10.2006 (Пн) 9:41

Oxygen писал(а):У меня по моим наблюдениям, глючит FireFox.


Он вечно глючит.

Оставляйте как есть, а то новых баг не миновать :wink:

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 16.10.2006 (Пн) 13:14

Нет браузера, кроме единого и единственного - IE. :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 16.10.2006 (Пн) 13:25

Гайдар, найди мне IE для Linux Slakeware, буду благодарна. :)
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.10.2006 (Пн) 14:42

Можно указать сессию без срока жизни, тогда она аннулируется при закрытии браузера.


Интересно, как Алибек собирается отслеживать закрытие браузера на стороне сервера :?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 16.10.2006 (Пн) 14:53

Хакер писал(а):
Можно указать сессию без срока жизни, тогда она аннулируется при закрытии браузера.


Интересно, как Алибек собирается отслеживать закрытие браузера на стороне сервера :?


Теоретически можно - пишется плагин, который по закрытию дергает web-сервис или просто страницу, сообщая, что браузер закрылся :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.10.2006 (Пн) 14:59

Ойй... не надо так опускаться :)

Плагины ещё писать. Это уже изврат дичайший. Чем не устраивает стандартный механизм сессий?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.10.2006 (Пн) 15:14

Не сессию, а cookies, разумеется.
Lasciate ogni speranza, voi ch'entrate.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 16.10.2006 (Пн) 15:19

У меня в Опере слетает только в 1 случае: когда она глабально виснет и её приходится сносить через Task Manager
Изображение

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 16.10.2006 (Пн) 16:13

keks-n
А ещё если виснет интернет во время загрузки страници, приходится нажимать на (обновить), тогда тоже слетает
[Место cдаётся]

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 16.10.2006 (Пн) 22:36

Денис Победря писал(а):keks-n
А ещё если виснет интернет во время загрузки страници, приходится нажимать на (обновить), тогда тоже слетает

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

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 17.10.2006 (Вт) 16:51

А может написать форум, который не через хтмл работает?
[Место cдаётся]

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.10.2006 (Вт) 16:59

Да. Действительно. Давайте напишем форум для FTP. Или лучше для SMTP.

Ой, извиняюсь, здесь не HTTP а HTML. Ну ладно, тогда ещё круче - давайте напишем форум для XML.

PS. Ненавижу XML.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 17.10.2006 (Вт) 17:08

А зря. У HTML будущего нет, а XHTML базируется на xml
Изображение

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 17.10.2006 (Вт) 17:20

Ненависть к XML выдает непрофессионала, однако. Преимущества формата очевидны.

А на счет форума не на HTML via HTTP, то вариант - NNTP сервер - т.е., читай, ньюсгруппа. Весьма популярно в буржундии. Второй вариант - собственный клиент/сервер с обменом через web-службу. Как раз XML формат сообщений. Третий вариант - написать веб-приложение для XAML, но клиенту тогда нужно поставить .NET 3.0 (еще пока в RC стадии), либо вьювер XAML'а, коих нормальных нет пока даже у Microsoft. Вариант четыре - клиент БД. Пятый вариант - работать не по http, а по протоколу поддерживающему состояние, но опять же нужен специальный клиент.

Все варианты предполагают установку на клиенте какого-либо софта, что, согласитесь, не есть гуд. Ибо браузер есть у всех (за реееежким исключением).

Как вариант - text формат, вообще без разметки. Ссылки вставляются с помощью Ctrl + C / Ctrl + V в адресную строку. Но это тоже не является хорошим решением - стоит забыть об удобстве.

Вообще HTML формат неплох, да и HTTP имеет свои преимущества. То, что глючит подсветка непрочитанных тем - вина движка.

Например, можно ставить флаг, что тема прочитана пользователем. А это еще одна таблица в БД, где будут учитываться ссылки, на которых пользователей был и которая будет обновляться каждый раз при добавлении новых сообщений - читай, минус производительность. Либо постоянно обновлять флаги в Cookie, где содержать жту информацию.

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

Как видите здесь дилемма - снижение производительности и повышение надежности алгоритма и наоборот. Собственно на ASP.NET движках чаще выбирают надежность, поскольку .NET несколько лучше управляет ресурсами, чем PHP. Соединениями с БД так точно. И поэтому не возникает больших накладок.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.10.2006 (Вт) 17:23

Хакер писал(а):PS. Ненавижу XML.

У тебя все впереди.
Smarty и прочие шаблоны вещь интересная. Но XML/XSL штука гораздо более цельная и мощная.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.10.2006 (Вт) 17:23

gaidar
Ненависть к XML у меня из-за того что данные в нём хранятся plain-text-ом.

То что древовидная структура и всё такое - это всё отлично.

А ещё бесят закрывающие теги. Я бы делал всё с помощью { и }.

Ведь согласитесь

<something>
</something>

намного длиннее чем

someting {
}
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.10.2006 (Вт) 17:40

Правда?
А что ты собираешься делать с HTML Entities? Создавать новые?
Как ты сделаешь <standalone_tag />?
А вот то, что это Plain Text -- это огромный плюс.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.10.2006 (Вт) 17:57

1) Ничего не собираюсь.
2)
somegag(some_info) {

};
stand_alone_tag(someinfo);
somegag(some_info) {

};
3) В жизни не сделаю прогу которая что-либо хранит Plain Text-ом.
Файл должен быть таким, чтобы глупый юзер открыл его в блокноте и такое там увидел, что сразу же от страха закрыл бы. :D
И потом, это не экономно.
По крайней мере глупо хранить ну скажем графику Plain-Text-ом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 17.10.2006 (Вт) 18:34

Ага, а со вложенными тегами ты как разбираться будешь?

some{
blahbl
asome{blahblahbhblah
asshole{hblahblahblahblahblahblahblahblahbblahblah
}
}
}

Убиться можно будет. К тому же преимущество XML как раз в том, что в блокноте можно поправить! Плюс, закрывающие теги нужны для push процессоров, значительно более производительных, чем те, которые сначала строят полную объектную модель документа.

XML придумали далеко не дураки и они очень многое учли. А уж XSD и XSLT какие замечательные вещи.

Если не хочешь, чтобы юзер ковырял - теряй преимущества, сериализуй в двоичный файл. Или используй формат Binary XML (коих штуки три знаю как минимум).
Последний раз редактировалось gaidar 17.10.2006 (Вт) 21:08, всего редактировалось 1 раз.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

След.

Вернуться в VBStreets.ru

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47

    TopList  
cron