Когда SWF (или другой внешний удаленный ресурс) загружается с помощью SWFLoader, выполняется ли кэширование на стороне клиента? - PullRequest
1 голос
/ 02 мая 2009

Хотелось бы узнать, загружается ли внешний удаленный ресурс (скажем, SWF или JPG) с использованием SWFLoader (или даже компонента Image) в flex3, есть ли какая-либо сторона клиента (т.е. кэширование в браузере?) Или загруженная Ресурсы. В частности, второй запрос затем для доступа к ранее полученному ресурсу просто использует кэшированный ресурс, или будет сделан новый запрос. Было бы неплохо узнать, возможны ли оба варианта (т. Е. Сказать, чтобы он всегда использовал новую загрузку или использовал кэшированную копию, если она доступна)

Ответы [ 3 ]

4 голосов
/ 04 мая 2009

Браузер отвечает за кэширование всех загруженных извне носителей, таких как изображения, звуки, видео и даже SWF-файлы. Их можно удалить, очистив кеш браузера. Я рекомендую Очистить кнопку кэша Firefox для всех, кто тестирует Flash-проекты в Firefox.

Однако Flash Player обрабатывает кэширование любых загруженных извне подписанных компонентов Flash, например. любые компоненты Adobe Flex Framework. Подробнее о кэше Flash Player можно прочитать здесь . Очистка кэша вашего браузера не приведет к очистке этих компонентов.

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

var noCache:int = new Date().getTime();
myImage.load("filename.jpg?uniq=" + noCache);

Или вы можете добавить уникальную переменную, используя URLVariables класс.

0 голосов
/ 03 мая 2009

Вы должны очистить кеш браузера. Таким образом, когда все будет работать нормально, кэширование все равно будет работать. Что означает, что если я посещу 5 раз один и тот же веб-сайт, я загружу его только один раз (это действительно удобно).

Решение, которое предлагает ktulur, работает, но не забывайте комментировать / удалять его, когда закончите.

Вы можете сделать что-то вроде:

var anticache:String="";
anticache = String(Math.random());
var file_url:String = "Whatever.xxx"+anticache;

Затем прокомментируйте / раскомментируйте вторую строку, чтобы использовать / игнорировать метод antiache. Надеюсь, это поможет:)

0 голосов
/ 02 мая 2009

Если это кеширование, вы можете избежать загрузки ресурса случайной переменной. Например, загрузка URI "/background.swf?var=1432".

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