Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранить ли объекты в сессии, объекты в сессии 
:(
    Опции темы
JVM
Дата 6.5.2008, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть некоторый список - допустим товаров. Этот список генегируется из базы и выводится пользователю. Далее пользователь выбирает товар(нажимает ссылку) и получает описание товара.

Список товаров на сервере я получаю в виде объектов. Выдираю id товаров и записываю как параметр в ссылку. После того как пользователь нажал на ссылку с товаром, на сервере идет запрос в базу данных на получение объекта выбранного товара.

Стоит ли хранить в сессии список объектов товаров и после выбора товара не делать запрос в БД, а получать объект товара из сессии?
PM MAIL   Вверх
Llucas
Дата 6.5.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


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

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



Как вариант можно, правда стоит учитывать реальное количество пользователей, т.к. для нормальной работы размер занимаемой памяти сессией не должен быть большим. 
PM MAIL WWW   Вверх
kkorsakoff
Дата 6.5.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По идее можно же хранить и в аппликэйшен контексте.
PM MAIL WWW ICQ   Вверх
JVM
Дата 6.5.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(kkorsakoff @ 6.5.2008,  12:14)
По идее можно же хранить и в аппликэйшен контексте.

Но тогда надо при первом обращении загружать эти данные, а при последующих запросах проверять были ли они загружены? Или можно по другому?
А если список меняется в процессе работы приложения, то тогда как его обновлять?

Если все же хранить в сессии то, если какие-нибудь численные показатели ограничивающие или разрешающие использовать такой подход?
PM MAIL   Вверх
shoura
Дата 6.5.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если никак нельзя оптимизировать запрос на список данных по скорости или так уж не хочется повторять эту процедуру много раз smile
я бы подумал о кэше ...

Реализовать можно средствами движка для работы с бд (Hibernate,IBATIS) если используется или на худой конец через
JCS.

Это даст и гибкость по сравнению с хард-кодом через аппликэйшен парамсы. 
А если это слишком сложное решение то стоит ли вообще овчинка выделки?
PM MAIL   Вверх
necromancer
Дата 6.5.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

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



=) улыбнуло
разговр идет об реализации кэша =)
библиотек написано уйма, самому можно реализорвать быстро при желании. Хранить можно по количеству и по времени как в сесси так и в апликации (товар то для всех одинаков). 
Если админ изменил товар(ы) обновлять весь кэш или один его элемент.

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

на самом деле задумыватся о кэше нужно уже когда приложение достаточно зрелое - тогда ищутся узке места и по возможности затыкаются.

Это сообщение отредактировал(а) necromancer - 6.5.2008, 14:11


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




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


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

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