2011-02-10 28 views
6

Después de cambiar el nombre de dominio donde se aloja la aplicación flash, debo cambiar el archivo crossdomain.xml. Ese crossdomain.xml está alojado en api-server, que es utilizado por la aplicación flash. Veo que el flash usa crossdomain.xml de la memoria caché del navegador. ¿Hay algún truco para hacer flash para no obtener crossdomain.xml de la memoria caché? Tal vez hay algún parámetro, que puedo pasar a flash durante su llamada en la etiqueta de objeto?crossdomain.xml previene el almacenamiento en caché

Respuesta

5

Problema molesto: sin dudas.

Antes que nada: me gusta almacenar en caché, siempre y cuando tenga el control. Esto es, cómo obtengo control sobre el almacenamiento en caché crossdomain.xml:

Digamos que tenemos una aplicación flash que requiere alguna entrada de un servidor diferente. En mi caso tenemos esta configurado como un FlashVar dataSrc=http://www.company.com/data/calendar.xml

Así flash está buscando www.company.com/crossdomain.xml ... que se carga una vez que tomado de la memoria caché del navegador a los usuarios hasta que se elimina manualmente.

La solución está en cambiar el subdominio del /crossdomain.xml tomada ist de:

Asegúrese de que, por ejemplo noCache.company.com/ puntos a documentRootde company.com (!). Flashvar se modifica a dataSrc=http://noCache.company.com/data/calendar.xml. De hecho, te estás dirigiendo al mismo archivo que antes.

Flash está buscando noCache.company.com/crossdomain.xmlque se tomarán del Servidor ahora porque no hay un archivo en caché para ese uri.

Todo depende de su fantasía ... si permite subdominios como noCache_ {} numeric_value, que fácilmente podría manejar su propio TTL accediendo http://noCache_ {} WEEK_OF_YEAR .company.com/datos/calendar.xml ...

También puede incrementar ese valor numérico cada vez que crossdomain.xml ha cambiado.

+0

Sí, he resuelto mi problema de manera similar. Todavía estaba esperando la administración de la solución con solo la configuración del flash. Pero parece que o no hay solución usando solo configuraciones de flash, o nadie lo sabe. Es por eso que acepto esta respuesta como solución de trabajo. Gracias. – Dao

+0

¡Gracias! Yo preferiría (¿demandaría?) Una forma de configuración de flash también. Este es un problema tan común ... – HBublitz

-3

Forzaría la recarga (F5 o CTRL/CMD-F5) del archivo crossdomain.xml directamente en el navegador hasta que lo vea cambiar. Simplemente escriba la URL del archivo crossdomain en el navegador y continúe actualizando. También me gustaría limpiar el caché del navegador.

Debería probar Firefox y Firebug, que le muestra si los archivos descargados están en la memoria caché o no.

http://getfirebug.com/

Buena suerte, Rob

+0

Gracias por la respuesta, pero a mí no es el único hombre que quiere ver el sitio de trabajo. Hay muchos otros que quieren usarlo. Supongamos que no puedo cargar directamente crossdomain.xml físicamente usando sus navegadores) – Dao

0

añado números aleatorios al final de los archivos XML si yo no quiero que se almacenan en caché por ejemplo. var myXMLURL: String = "myXML.xml? r =" + Math.random() * 1000;

El navegador lo ve como un archivo diferente, por ej. myXML.xml? r = 645/myXML.xml? r = 239

No estoy seguro de si esto funcionaría con los archivos crossdomain.xml, pero vale la pena intentarlo de inmediato.

+3

Como entiendo 'crossdomain.xml' es llamado por los mecanismos internos de Flash. Si sabe cómo influir en esta solicitud y agregar parámetros, por favor comparta. – Dao

+3

Flash solicita un crossdomain.xml en la base del dominio de manera predeterminada, pero puede establecerlo llamando a Security.loadPolicyFile (str: String); http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/system/Security.html#loadPolicyFile() –

+1

@TrevorBoyle: No he podido obtener Security.loadPolicyFile() para hacer realmente nada una vez que un antiguo La versión de crossdomain.xml ya ha sido almacenada en caché, ¿hay algo obvio que pueda estar pasando por alto? –

1

Uso siguiendo las directivas de Apache para especificar la política de caché para el archivo:

<Directory /var/www/mysite> 
    <FilesMatch "crossdomain.xml"> 
    Header set Cache-Control "max-age=86400, public, must-revalidate" 
    </FilesMatch> 
</Directory> 
Cuestiones relacionadas