Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где хранить кол-во входящих сообщений, на сайте 
:(
    Опции темы
Ivankult
Дата 20.11.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



Есть мастерпейдж. В нем есть label, в котором отображается кол-во входящих сообщений пользователю сайта. Где хранить эту переменную? В куки? Или как глобальную переменную? И когда, в таком случае, обновлять её? Или же при каждом обновлении лезть в БД и смотреть оттуда?
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете».
PM MAIL ICQ   Вверх
Экскалупатор
Дата 20.11.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



а где хранятся сами сообщения? мне кажется очевидным что если в базе, то имеет смысл просто запрашивать их количество из базы.
PM MAIL ICQ   Вверх
Ivankult
Дата 21.11.2010, 03:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



счетчик сообщений находится в мастерпейдже, и при каждой обновлении страницы будет запрос в БД? Это ж лишние нагрузки. Думаю, завести глобальный класс Global.cs со своим пространством имен, туда запилить хэш таблицу. И в ней хранить такую информацию для каждого счетчика, а обновлять её из БД при каждом залогинивании, например. Только вот вопрос в том, как проверить, зная имя пользователя, авторизован он еще, или же покинул сайт(и тогда нет необходимости хранить его в хэше и надо освободить запись). Каким образом это определять?
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете».
PM MAIL ICQ   Вверх
Экскалупатор
Дата 21.11.2010, 03:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



хм. если после логина пользователя ему кто то напишет? как ты узнаешь что количество сообщений изменилось?
PM MAIL ICQ   Вверх
Ivankult
Дата 21.11.2010, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



когда я обрабатываю событи "отправить сообщение" я обновляю кэш. Так же, когда и срабатывает событие "добавить в закладки"(по сайту в профиль).

Так как проверить, зная имя пользователя, авторизован он еще, или же покинул сайт?
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете».
PM MAIL ICQ   Вверх
Экскалупатор
Дата 21.11.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



по времени последней загрузки страницы или что бы пользователь сам сообщал о своем выходе, но если пользователь просто закроет браузер то он не сможет сообщить что вышел.
PM MAIL ICQ   Вверх
Ivankult
Дата 21.11.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



вот об этом я и говорю! неужели нет методов в C# для проверки статуса пользователя(авторизован али покинул сайт)? Что ж тогда просто при каждом обновлении страницы смотреть-есть я(пользователь) в кэше или нет. если меня нет-еще и в кэш добавиться. а в кэше также хранить время последнего обращения в кэш, и если прошел час с последнего обращения-выкинуть из кэша. ну или пол часа. норм решение?
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете».
PM MAIL ICQ   Вверх
Экскалупатор
Дата 21.11.2010, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



ну да, так и получается, просто сервер не хранит состояние сессии, т.е. пользователь существует для сервера только пока сервер готовит и отправляет пользователю данные.
PM MAIL ICQ   Вверх
jonie
Дата 22.11.2010, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Просто делать запрос к базе каждый раз, в ASP.NET есть методы кеширования прямо на странице, так что запросы будут идти в базу например "раз в 5 минут, но не чаще".
Читать про OutputCache в asp.net и посмотреть доклад http://www.techdays.ru/videos/1190.html


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.