8 votos

Evite el caché de capa WMS de OpenLayers mediante el navegador

Estoy usando OpenLayers (GeoExt) con el navegador google chrome. Toda la capa de WMS es para la base de datos en vivo. He refrescado el navegador en cierto intervalo usando javascript, pero los datos están en caché en el navegador y cuando actualizo la página web veo datos antiguos. Cuando borro el caché del navegador, veo nuevos datos. ¿Cómo evito el almacenamiento en caché o borro el caché automáticamente?

 function RefreshPage(Period) {
    setTimeout("location.reload(true);", Period);
}
 

15voto

pufferfish Puntos 679

El truco de usar el parámetro "myData" debe ser unnessesarry, como lo vemos en OpenLayers.Layer.HTTPRequest (del cual hereda la capa WMS):

 redraw: function(force) { 
    if (force) {
        return this.mergeNewParams({"_olSalt": Math.random()});
    } else {
        return OpenLayers.Layer.prototype.redraw.apply(this, []);
    }
},
 

si lo haces layer.redraw (verdadero); OpenLayers agrega un parámetro aleatorio para usted

(Además, al establecer myData en Math.random () al inicializar, myData no cambiará para cada actualización)

7voto

Mike Powell Puntos 2913

Si recuerdo correctamente, usted puede insertar su propio parámetro en la capa WMS de configuración:

var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
    "http://wms.jpl.nasa.gov/wms.cgi",
    {
        layers: "modis,global_mosaic",
        transparent: true,
        myData: Math.random()
    }, {
        opacity: 0.5,
        singleTile: true
    });

Usted puede utilizar el actual momento u otro valor aleatorio. La clave myData será URL codificada en la solicitud enviada al proveedor WMS y la petición es que ahora ha cambiado debido al nuevo valor de myData.

Esto no borrar la caché, pero le dice al navegador que la petición es diferente de la que previamente almacenadas en caché.

Si solo quieres actualizar tu las capas WMS, esto se puede hacer por

myWMSLayer.redraw(true);

El parámetro true dice que la capa de la fuerza de un rediseño.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X