Как во Flex загрузить кешированные предварительно загруженные изображения - PullRequest
1 голос
/ 05 апреля 2011

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

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

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

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

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

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

Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2011

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

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

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

Истекает: четверг, 01 декабря 2011 г., 16:00:00 по Гринвичу

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

...