Остановить кеширование изображений в wP7 - PullRequest
3 голосов
/ 13 февраля 2011

У меня есть функция, которая отображает изображения из привязанного URI (например, www.website.com/picture1.jpg).

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

РЕДАКТИРОВАТЬ: Изображения регулярно обновляются, но все еще имеют то же имя, поэтому нет необходимости кэшировать.Вспомните, например, камеру безопасности.

Большое спасибо.

Ответы [ 5 ]

5 голосов
/ 13 февраля 2011

Обойти это невозможно, если вы не добавите случайную строку запроса к изображению uri на каждом GET, т. Е.

var imageUrl = "www.website.com/picture1.jpg";
var imageUri = new Uri(String.Format("{0}?{1}", imageUrl, Guid.NewGuid()));

Кэширование будет слишком агрессивным.HTTP-запрос для жизненного цикла приложений - даже если контент меняется каждый раз - телефон его кеширует.Когда я пытался поговорить с веб-сервисом JSON-RPC, меня несколько озадачивали часы ...

Конечно, в общем случае вы хотите, чтобы изображения кэшировались - но если вы уверены, что изображения выпосле будет часто меняться, то вышеперечисленное будет работать.

2 голосов
/ 13 февраля 2011

Добавить уникальный параметр строки запроса в URL. (например, DateTime.Now)

1 голос
/ 15 февраля 2011

Существует CreateOptions свойство BitmapImage (если вы загружаете в коде), которое позволяет указать BitmapCreateOptions , одним из которых является IgnoreImageCache : Загружает изображения без использования существующего кэша изображений. Этот параметр следует выбирать только в том случае, если необходимо обновить изображения в кэше.

Я не пробовал, но звучит так, как будто ты ищешь ... если ты попробуешь, мне будет интересен результат.

0 голосов
/ 14 февраля 2011

В зависимости от того, имеете ли вы контроль над сайтом и его контентом; Разве это не должно быть обработано путем установки заголовков ответа HTTP? Я бы предположил, что платформа уважает заголовки (не проверено).

В противном случае вышеприведенный трюк со случайной строкой будет работать.

0 голосов
/ 13 февраля 2011

Кеш - это хорошая вещь, потому что в вашем случае это может сэкономить стоимость загрузки изображения, если изображение не меняется, зачем вам нужно его снова загружать?

Если ваше изображение было изменено, и вы хотите принудительно загрузить его снова, вы можете сгенерировать уникальный идентификатор по URL.

но подумай, почему?

...