Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 234

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 228 229 230 231 232 233 < 234 > 235 236 237 238 239 240 .. 260 >> Следующая

ните воспользоваться этой мощной функцией ASP.NET.
Преимущества
Если необходимо многократно генерировать один и тот же HTML-код на основе содержимого объекта DataSet, кэширование вывода окажется очень эффективным, поскольку требует меньше ресурсов сервера. Как и в случае с объектом Cache, при кэшировании вывода можно управлять сроком хранения данных.
Недостатки
Как и все серверные функции кэширования, кэширование вывода требует ресурсов сервера.
Хранение сведений о состоянии в БД
Никто не говорит, что обязательно хранить сведения о состоянии на Web-сервере. Есть специальные серверы БД, предназначенные для хранения и работы с данными. В БД допустимо хранить глобальные и уникальные для сеансов данные вашего например содержимое корзины отдельных пользователей.
Представьте, что вашему приложению нужно выполнить настолько сложный или длительный по времени запрос, что вы предпочли бы сохранить результаты этого запроса в таблице, а не выполнять его каждый раз, когда пользо-
ватель обращается к следующей странице результатов. Например, пользователь может выполнить в БД поиск приводов CD-RW со скоростью записи не менее 2 >х,
544
Часть IV Создание эффективных приложений с использованием ADO ne Г
которые поддерживают интерфейсы I Sh и l'iicWirc и продаются в магазинах, расположенных не далее, чем в 30 милях от дома пользователя. Вот образец такого запроса:
SELECT ProductID, ProdustNarris, Description, UnitPrice, ... FROM Products WHERE UnitPrice < 200 AND Description LIKE 'XUSBV AND Description LIKE ¦%FireWire*' AND ...
Представьте, что запрос возвращает 50 записей, на каждой странице отображается 10 товаров. Можно выполнять данный запрос каждый раз, когда пользователь открывает новую страницу результатов, а можно поместить результаты этого запроса в одну из таблиц БД. Воспользовавшись запросом INSERT INTO и идентификатором сеанса пользователя, чтобы отслеживать принадлежность результатов к определенному следует создать вторую где будут храниться
результаты запросов к первой таблице:
INSERT INTO ProductsQueryCache
SELECT ? AS SessionID, ProductID, ProductName, Description, UnitPrice, ...
FROM Products
WHERE UnitPrice < 200 AND Description LIKE ,%USb%' AND Description LIKE ¦iFlreWirei' AND ...
Затем надо получать записи для следующей страницы из таблицы результатов,
а не выполнять повторно оригинальный запрос к основной таблице каталога.
Данный конкретный пример, вероятно, и не позволяет в полной мере оценить предлагаемую технику, но пригодится при работе с запросами, которые вам не хотелось бы выполнять многократно.
Примечание Решив воспользоваться описанной техникой, не забудьте удалить кэшированные записи из БД в событии End объекта Session или когда это
потребуется.
Преимущества
Хранение информации в БД позволяет ASP.NET-коду не поддерживать сведений о состоянии. Данные, хранящиеся в БД, надежны. Если Web-сервер по какой-то причине откажет, после его восстановления данные из БД снова станут доступны. Данные из БД имеют высокую степень защиты, поскольку доступны пользователю только через ASP.NET-код. БД предназначены для работы с большими наборами результатов. Если вам действительно требуется поддерживать большие наборы результатов между обращениями к страницам, лучше всего хранить эти результаты в БД.
Недостатки
Хранить сведения о состоянии в БД сложнее, чем просто хранить данные в простых объектах и наборах типа Session, Application, Cache, VietvStatewm в файле cookie,
ГЛАВА 14 Создание эффективных Web-приложений 545
Рекомендации по хранению сведений о состоянии
То, как и где вы храните сведения о состоянии, может значительно влиять на производительность, масштабируемость и безопасность ваших Web-приложений. Основополагающих принципов, определяющих, необходимо ли Web-приложению хранить сведения о состоянии, и если да, то как и где. нет. Тем не менее стоит воспользоваться общими рекомендациями, продиктованными здравым смыслом.
Хранение данных в объектах ViewState
Применяйте объекты ViewState, когда имеете дело с небольшими наборами татов и допускаете просмотр этих результатов пользователем. Если же необходимо обеспечить защиту данных и исключить возможность изменения информации пользователем, храните данные в объекте Session или в БД. Помните: при обращении к ним данные из объекта каждый раз передаются от клиента к серверу и обратно. Чем больше размер содержимого объекта ViewSession, тем больше уйдет на передачу его по сети.
Хранение данных в объекте Application
В объекте Application рекомендуется хранить небольшой объем данных, глобальных для сеансов вашего Помните: чем больше данных содержит объект Application, тем сильнее снижается производительность.
Хранение данных в объекте Session
Объект Session рассчитан на хранение небольшого объема данных, критичных для конкретного сеанса, а также предназначен для случаев, когда хранение данных в объекте ViewState неприемлемо по соображениям безопасности. Помните: чем больше данных в объекте тем сильнее и в несколько раз быстрее по срав-
Предыдущая << 1 .. 228 229 230 231 232 233 < 234 > 235 236 237 238 239 240 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100