Как в Flex загружать кешированные предварительно загруженные изображения

В моем приложении я делаю многочисленные вызовы для предварительной загрузки изображений в кеш браузера в фоновом режиме с использованием экземпляров Loader и игнорирую событие complete. Я не храню результаты в приложении, а хочу сохранить их в кеше браузера. Изображения имеют длинные даты заголовка Expires.

Когда я хочу использовать определенное изображение (я), я снова использую экземпляр Loader и вызываю тот же URL-адрес и прослушиваю событие complete, чтобы загрузить файл в изображение.

Проблема в том, что когда я повторно запрашиваю URL-адрес для «кэшированного» изображения, он делает http-запрос со статусом ответа 200, что, как я полагаю, означает, что он попадает на сервер.

Как сделать так, чтобы запрос кэшированного изображения никогда не попадал на сервер из Flex?

В общем, я обнаружил, что любой запрос URL-адреса для кэшированного изображения (с длинным заголовком expires) делает другой запрос к серверу, или, по крайней мере, это моя интерпретация его в Firebug.

Есть идеи, как это сделать? Или я неверно истолковываю то, что мне сообщает Firebug?

Спасибо.


person fosrias    schedule 05.04.2011    source источник


Ответы (1)


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

Чтобы быть в безопасности при кэшировании изображений, я добавил следующий заголовок Cache-Control (хотя я думаю, что истечения срока действия достаточно. Один год на момент публикации этого сообщения).

Cache-Control: max-age = 31536000, необходимо перепроверить

Истекает: Thu, 01 Dec 2011 16:00:00 GMT

Итак, если вы правильно установили заголовки кеша (обратите внимание, что если дата не является допустимой датой в заголовке expires, это не сработает), flex будет загружаться из кеша, когда вы вызываете URL-адрес кэшированного изображения.

person fosrias    schedule 05.04.2011