![]() |
|
Модераторы: gambit |
![]()
|
|
| Ivankult |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 181 Регистрация: 8.9.2008 Репутация: нет Всего: нет |
Есть мастерпейдж. В нем есть label, в котором отображается кол-во входящих сообщений пользователю сайта. Где хранить эту переменную? В куки? Или как глобальную переменную? И когда, в таком случае, обновлять её? Или же при каждом обновлении лезть в БД и смотреть оттуда?
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете». |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
а где хранятся сами сообщения? мне кажется очевидным что если в базе, то имеет смысл просто запрашивать их количество из базы.
|
|||
|
||||
| Ivankult |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 181 Регистрация: 8.9.2008 Репутация: нет Всего: нет |
счетчик сообщений находится в мастерпейдже, и при каждой обновлении страницы будет запрос в БД? Это ж лишние нагрузки. Думаю, завести глобальный класс Global.cs со своим пространством имен, туда запилить хэш таблицу. И в ней хранить такую информацию для каждого счетчика, а обновлять её из БД при каждом залогинивании, например. Только вот вопрос в том, как проверить, зная имя пользователя, авторизован он еще, или же покинул сайт(и тогда нет необходимости хранить его в хэше и надо освободить запись). Каким образом это определять?
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете». |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
хм. если после логина пользователя ему кто то напишет? как ты узнаешь что количество сообщений изменилось?
|
|||
|
||||
| Ivankult |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 181 Регистрация: 8.9.2008 Репутация: нет Всего: нет |
когда я обрабатываю событи "отправить сообщение" я обновляю кэш. Так же, когда и срабатывает событие "добавить в закладки"(по сайту в профиль).
Так как проверить, зная имя пользователя, авторизован он еще, или же покинул сайт? --------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете». |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
по времени последней загрузки страницы или что бы пользователь сам сообщал о своем выходе, но если пользователь просто закроет браузер то он не сможет сообщить что вышел.
|
|||
|
||||
| Ivankult |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 181 Регистрация: 8.9.2008 Репутация: нет Всего: нет |
вот об этом я и говорю! неужели нет методов в C# для проверки статуса пользователя(авторизован али покинул сайт)? Что ж тогда просто при каждом обновлении страницы смотреть-есть я(пользователь) в кэше или нет. если меня нет-еще и в кэш добавиться. а в кэше также хранить время последнего обращения в кэш, и если прошел час с последнего обращения-выкинуть из кэша. ну или пол часа. норм решение?
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете». |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
ну да, так и получается, просто сервер не хранит состояние сессии, т.е. пользователь существует для сервера только пока сервер готовит и отправляет пользователю данные.
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 8 Всего: 118 |
Просто делать запрос к базе каждый раз, в ASP.NET есть методы кеширования прямо на странице, так что запросы будут идти в базу например "раз в 5 минут, но не чаще".
Читать про OutputCache в asp.net и посмотреть доклад http://www.techdays.ru/videos/1190.html -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |