crossdomain.xml предотвратить кеширование - PullRequest
6 голосов
/ 10 февраля 2011

После изменения имени домена, где размещается flash-приложение, я должен изменить файл crossdomain.xml.Этот crossdomain.xml хранится на api-сервере, который используется приложением flash.Я вижу, что flash использует crossdomain.xml из кеша браузера.Есть ли какой-нибудь трюк, чтобы сделать flash, чтобы не получить crossdomain.xml из кэша?Может быть, есть какой-нибудь параметр, который я могу передать flash во время его вызова в теге object?

Ответы [ 4 ]

5 голосов
/ 16 августа 2011

Раздражающая проблема - без сомнения.

Прежде всего: мне нравится кэширование - пока я контролирую.Вот как я получаю контроль над кешированием crossdomain.xml:

Допустим, у нас есть флэш-приложение, которое требует некоторого ввода с другого сервера.В моем случае это настроено как flashvar dataSrc=http://www.company.com/data/calendar.xml

Так что flash ищет www.company.com/crossdomain.xml ..., который загружается один раз и затем берется из кэша браузера пользователя, пока он не сбросит его вручную.

Решение состоит в том, чтобы изменить поддомен, из которого берется crossdomain.xml:

Убедитесь, что, например, (!) noCache.company.com / указывает на document.comRoot .Flashvar изменен на dataSrc=http://noCache.company.com/data/calendar.xml.На самом деле, вы обращаетесь к тому же файлу, что и раньше.

Flash ищет noCache.company.com/crossdomain.xml , который будет взят с сервера сейчас, потому что для этого URI нет кэшированного файла.

Это ваша фантазия ..Если вы разрешите субдомены, такие как noCache_ {numeric_value}, вы можете легко обработать свой собственный TTL, набрав http://noCache_{week_of_year}.company.com/data/calendar.xml ...

Вы также можете увеличивать это числовое значение при каждом изменении crossdomain.xml..

1 голос
/ 13 сентября 2011

Используйте следующие директивы apache для указания политики кэширования для файла:

<Directory /var/www/mysite>
  <FilesMatch "crossdomain.xml">
    Header set Cache-Control "max-age=86400, public, must-revalidate" 
  </FilesMatch>
</Directory>
0 голосов
/ 11 февраля 2011

Я добавляю случайные числа в конец XML-файлов, если я не хочу, чтобы они кэшировались например. var myXMLURL: String = "myXML.xml? r =" + Math.random () * 1000;

Браузер видит его как другой файл, например. myXML.xml? r = 645 / myXML.xml? r = 239

Я не уверен, что это будет работать с файлами crossdomain.xml, но стоит попробовать быстро.

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

Я бы принудительно перезагрузил (F5 или CTRL / CMD-F5) файл crossdomain.xml прямо в браузере, пока не увижу его изменения. Просто введите URL-адрес файла междомена в браузере и продолжайте обновление. Также я бы очистил кеш браузера.

Вам следует попробовать Firefox и Firebug, который показывает, кэшированы ли загруженные файлы.

http://getfirebug.com/

Удачи, Rob

...