powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кэширование - как лучше?
8 сообщений из 8, страница 1 из 1
Кэширование - как лучше?
    #34055428
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо выводить картинки из БД, для этого использую HttpHandler. Но при каждом его вывове происходит подключение к БД, а на странице имеется 10 картинок => 10 подключений.

Как сделать оптимальное кэшировыание этих картинок. Причём используется постраничный вывод, т.е. картинок на самом деле около 100 только на страницу их выводится по 10 штук.

Рассматриваю такой вариант, при запросе данной страницы в событии Page_Load будет осуществляться одно подключение к БД, при котором будут вытягиваться эти 10 картинок и записываться в Session или Cache, и в HttpHandler будт использоваться эти данные  из Сессии или из Кэша.

Может кто-нибудь посоветует лучше вариант?
...
Рейтинг: 0 / 0
Кэширование - как лучше?
    #34055444
ok2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ok2
Гость
cache - нормальный вариант
...
Рейтинг: 0 / 0
Кэширование - как лучше?
    #34055535
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cache - нормальный вариант
 
Такой вариант скорее всего не подходит.
Т.к., допустим, один пользовтель запрашивает страницу с первыми 10 фотографиями, у него загрузилось только первых пять,  т.е. в кэше находится эти первые десять фотографий.
 
 Затем другой пользователь запрашивает страницу со вторыми 10 фотографиями, соответсвенно содержимое кэша изменилось, в нём теперь находится второй 10-ок фотографий => т.е. для первого  пользователя одна половина фотографий из его запроса, вторая половина из запроса второго пользователя.

1. Может тогда хранить Все 100 картинок в кэше, но чё-то как-то много памяти будет сжираться.

2. Ещё вариант, это каждый раз при запросе страницы загружать картинки не в Cache, а в Session, но опять как-то не рационально, т.к. если одновременно запросят страницу 10 человек то в памяти будет находится 100 картинок.

Чё-то я совсем запутался.
 
...
Рейтинг: 0 / 0
Кэширование - как лучше?
    #34055596
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А оно вообще нужно это кэширование ? Вы считали какой будет выигрыш по времени загрузки страницы ?
...
Рейтинг: 0 / 0
Кэширование - как лучше?
    #34055722
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выйгрыша практически никакого (но он есть
), но это не заметно при заходе на страницу одного пользователя, но если их будет штук 10 одновременных, это стразу выливается в 110 подключений к БД.

Т.к. на каждого пользователя открывается соединение при событиии Page_Load и т.к. на каждую картинку срабатывает HttpHandler ( их всего десять на странице). Итого 110 подключений.

А если кэшировать например тот же ДатаТэйбл, в котором содержатся эти картинуи, на 30 секунд заместо 110 подключений в течение этих тридцати секунд будет произведено только ОДНО подключение к БД. Как я понимаю кэширование вообще необходимо для масштабируемости приложения.
...
Рейтинг: 0 / 0
Кэширование - как лучше?
    #34055800
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
 Как я понимаю кэширование вообще необходимо для масштабируемости приложения.
 
Или я не прав?
...
Рейтинг: 0 / 0
Кэширование - как лучше?
    #34055955
NEKRASSOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Limonadcache - нормальный вариант
 
Такой вариант скорее всего не подходит.
Т.к., допустим, один пользовтель запрашивает страницу с первыми 10 фотографиями, у него загрузилось только первых пять,  т.е. в кэше находится эти первые десять фотографий.
 
 Затем другой пользователь запрашивает страницу со вторыми 10 фотографиями, соответсвенно содержимое кэша изменилось, в нём теперь находится второй 10-ок фотографий => т.е. для первого  пользователя одна половина фотографий из его запроса, вторая половина из запроса второго пользователя.

1. Может тогда хранить Все 100 картинок в кэше, но чё-то как-то много памяти будет сжираться.

2. Ещё вариант, это каждый раз при запросе страницы загружать картинки не в Cache, а в Session, но опять как-то не рационально, т.к. если одновременно запросят страницу 10 человек то в памяти будет находится 100 картинок.

Чё-то я совсем запутался.  

А еще есть в файле Global.asax событие Application_OnStart. В нем можно загрузить ОДИН раз за ОДНО подключение в кэш штук 50 (или сразу сто?), которые будут чаще запрашиваться. А в БД - фиксировать частоту запросов. И регулировать состав картинок в кэше со временем по частоте запросов. Их еще можно сохранить, как переменные уровня приложения. Это, вроде не совсем кэш...
...
Рейтинг: 0 / 0
Кэширование - как лучше?
    #34055963
Bald
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот тут: http://msdn.microsoft.com/msdnmag/issues/04/04/CuttingEdge/
есть контрол, который выводит рисунки и тут же сохраняет их в кеш, при повторном вызове будет использоваться кеш, время нахождения картинки в кеше можно регулировать ну итд.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кэширование - как лучше?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]