2011-06-14 8 views
9

Como ya sabe, puede crear un paquete Silverlight XAP y hacer referencia a él utilizando la etiqueta de objeto en su página HTML o página asp.net.¿Cómo manejan los navegadores el almacenamiento en caché de paquetes XAP?

Cuando el navegador descarga el paquete XAP del servidor la primera vez que el usuario hace referencia a la página, si el usuario actualiza la misma página, ¿vuelve a descargar el mismo paquete XAP o utiliza la versión en caché?

Si el usuario navega a otra página que utiliza el mismo paquete XAP y el paquete XAP ya fue descargado debido a la página anterior estaba el usuario, hace que el navegador utiliza una versión en caché o ir al servidor y descargas de nuevo?

Si el navegador utiliza versiones en caché todo el tiempo, ¿cómo sabe cuándo utilizar la versión en caché y cuándo utilizar la nueva versión del paquete XAP ya que puede haber sido reconstruir con nuevos cambios? ¿Tiene algo que ver con el número de versión del paquete?

Respuesta

9

XAP se considera como un archivo de recursos ordinarios mismo que la imagen (png/gif/jpg etc.) El navegador no descarga la nueva copia hasta que coincidan sus condiciones de caché de HTTP que están fuera del alcance para explicarlo aquí. La única solución que hemos adaptado es agregar "? Tag" después de que la URL de XAP y la etiqueta pueden reemplazar el número de versión, lo que obligará al navegador a volver a descargar el archivo.

Así marcamos nuestra url como ..

MySilverlightClient.xap?v1 
MySilverlightClient.xap?v2 

etc Por lo tanto, incluso si se almacena en caché para la versión actual no hay ningún problema, pero cuando se cambia una nueva versión en el lado del servidor, podemos cambiar nuestra marque v1 a otra cosa que obligue al navegador a considerarla como una nueva URL y vuelva a descargarla incluso si está en caché.

+0

Debe recordar actualizar la etiqueta de versión en todos los archivos HTML utilizando XAP, la mayoría de las veces no es un problema, ya que normalmente solo lo tiene en un archivo HTML. ¿Por qué la configuración de los encabezados de control de caché en su carpeta ClientBin no funciona para usted? – AnthonyWJones

+0

No tengo mucha experiencia en la configuración de encabezados de control de caché, ¿me puede indicar dónde puedo obtener más información? – ActiveX

+0

Acerca de las URL, así que si cambio la URL, ¿está diciendo que el navegador volverá a descargar el recurso en lugar de usarlo desde el caché? ¿Es así de simple? – ActiveX

2

Respondo la primera parte de su pregunta, que es que el navegador usa una copia almacenada en caché del XAP cuando revisita/actualiza la página. De hecho, puede ser bastante divertido hacer que el navegador descargue una nueva copia.

Cada navegador se comporta de manera diferente aquí, por supuesto, con IE que parece ser el más terco sobre la actualización de XAP cuando el archivo fuente ha cambiado. Como señala Anthony en los comentarios, el XAP se trata como cualquier otro archivo de contenido de acuerdo con el manejo del caché del archivo de contenido predeterminado del navegador.

Hay algunas buenas soluciones en esta pregunta similar que cubren otras maneras de asegurar el XAP se actualiza:

Making the Silverlight XAP file expire from browser cache programmatically

+2

IE hace sus propias reglas si el servidor no es explícito sobre qué comportamiento de caché se requiere de él. La mayoría de los navegadores se comportarán de manera bastante consistente si el servidor proporciona los encabezados de control de caché correctos en primer lugar. La respuesta a la mayoría de las preguntas de "caché de XAP" es más o menos lo mismo que las preguntas de "caché PNG": comprenda cómo funciona el caché en HTTP. – AnthonyWJones

+0

@AnthonyWJones Gracias, tiene sentido. –

Cuestiones relacionadas