В чем разница между кэшем HttpContext и свойствами элементов?
В чем разница между HttpContext
класса Cache
а также Items
свойства?
Из документации MSDN:
кэш
Получает объект Cache для текущего домена приложения.Предметы
Получает коллекцию ключей / значений, которую можно использовать для организации и обмена данными между интерфейсом IHttpModule и интерфейсом IHttpHandler во время HTTP-запроса.
Я не очень понимаю, что пытается объяснить эта документация.
Работая над веб-приложениями ASP.NET, я часто использовал Items
для кэширования данных по запросу, чтобы несколько пользовательских элементов управления не заканчивали поиск одних и тех же данных из базы данных. Это описано в этой статье.
Сегодня, однако, я столкнулся с использованием Cache
свойство для того, что выглядело, для кэширования по запросу. Я пытался понять разницу, но не смог найти хорошую документацию, сравнивающую эти два. Так что я хотел бы знать...
В чем разница между свойствами HttpContext Cache и Items? Пожалуйста, попробуйте уточнить примеры того, почему вы решили использовать один поверх другого в различных сценариях реального мира.
1 ответ
Элементы для каждого запроса, поэтому он доступен только для данного пользователя для данного HTTP-запроса. Кэш хранится в памяти в течение постоянного периода времени и не зависит от конкретного пользователя. Таким образом, кеш может быть разделен между несколькими пользователями по нескольким запросам, но элементы для каждого пользователя.
Это зависит от того, как долго вы хотите, чтобы данные жили. Я использую Предметы для хранения таких вещей, как ObjectContext или DbContext в EF, которыми я хочу поделиться только для данного запроса. Но данные справочной таблицы все пользователи будут использовать для многих запросов, поэтому кэширование будет лучше.