Работа с кешем IE - PullRequest
       29

Работа с кешем IE

2 голосов
/ 11 мая 2010

Я пишу программу на C # с использованием инфраструктуры WPF.Мне нужно отображать изображения, и я хотел бы кэшировать их, чтобы избежать их постоянной загрузки.

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

Ответы [ 2 ]

2 голосов
/ 11 мая 2010

В зависимости от того, как вы скачиваете файлы, они, возможно, уже добавляются в кеш. Как вы их сейчас скачиваете?

Вы можете добавлять элементы в кеш IE. Обычно у вас есть несколько вариантов: URLDownloadToCacheFile () сделает это за один приятный «легкий» шаг. CommitUrlCacheEntry () - это хардкорный способ сделать это. Я предполагаю, что в примере, который вы нашли, используется FindFirst / FindNextUrlCacheEntry () для перечисления кэша, поэтому вы сможете легко добавить взаимодействие, необходимое для CommitUrlCacheEntry ().

Однако, как бывший член команды IE, я не могу достаточно порекомендовать вам не использовать кеш Wininet для чего-либо. Он ненадежен, его можно очистить из-под вас, он часто искажается, у него есть жесткие ограничения на количество вещей, которые он может хранить, он подчиняется различным правилам, которые вы не понимаете, и он будет оптимизирован для Использование IE, а не ваше.

Серьезно, не делай этого. Если вам действительно нужен кеш, напишите свой.

2 голосов
/ 11 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...