PDA

Просмотр полной версии : Загрузка внешнего swf в обход кэша


L_Ghost
21.06.2011, 16:26
Доброго времени суток!
Есть основной модуль, который по мере необходимости грузит внешние swf.
Но вот беде - они кэшируются. А при обновлении этих swf на сайте и попытке загрузки - берутся из кэша (у кого он включен есесно).
Пробовал что-то типа
request=new URLRequest("file.swf?"+String(Math.round(Math.random()*9999)));
Не грузит вообще. Выдаёт ошибку.
Как реализовать в AS3?

kackbip
21.06.2011, 16:28
В принципе путь правильный, если конечно файл грузится не с локальной файловой системы.
А вобще лучше дату прибавлять к запросу

spooner
21.06.2011, 19:50
request=new URLRequest("file.swf?rand="+String(Math.round(Math.random()*9999)));

dimarik
21.06.2011, 19:55
Достаточно new URLRequest("file.swf?") При первом запросе файла с начала запуска флеш-ролика браузер сделает полноценный запрос с If-Modified-Since и пр.

Ваш подход обладает существенным недостатком: запрошенный файл будет загружаться всегда, даже если он не был модифицирован.

spooner
22.06.2011, 11:24
О как. Спасибо, не знал.

Cheburashka
22.06.2011, 12:08
Попробуйте сделать так:
В основном модуле прописать версию приложения, например:

public static const APP_VERSION : String = '0.8';

А при подгрузке доп ресурсов делать такой запрос:

request=new URLRequest("file.swf?ver="+APP_VERSION);

Таким образом пока вы не поменяете версию главного модуля, допы будут грузиться из кеша, поменяете - загрузятся заново.
Хотя я не знаю подойдет ли этот способ для вашего конкретного случая.

alatar
22.06.2011, 12:15
Cheburashka, и каждый раз перекомпилировать приложение, если поменялся модуль? Какой тогда смысл в модулях?

Cheburashka
22.06.2011, 12:18
Я же уточнил, если подойдет для конкретного случая.

kackbip
22.06.2011, 13:18
Ну версию можно и в конфиг вынести.

alatar
22.06.2011, 13:21
Конфиг тоже будет кэшироваться. Не проще ли, как сказал dimarik, один раз нормально настроить сервер и забыть про костыли.

L_Ghost
22.06.2011, 15:25
Что значит правильно настроить сервер?

Добавлено через 6 минут
Что значит правильно настроить сервер?

alatar
22.06.2011, 15:33
Что значит правильно настроить сервер?
http://last-modified.com/ru/if-modified-since.html

Добавлено через 5 минут
http://xmlhack.ru/texts/06/doing-http-caching-right/doing-http-caching-right.html
и т.д.

kackbip
22.06.2011, 15:55
Конечно лучше как Димарик предложил :)
Кстати не будет ли особых замут с If-Modified-Since из-за разницы часовых поясов клиента и сервера? Не может ли получиться запрос где If-Modified-Since=через час?

alatar
22.06.2011, 16:02
Не будет.

L_Ghost
22.06.2011, 16:07
Благодарю за ответы господа.