[OpenLayers-Dev] redraw(true) and random HTTP GET parameter with
XYZ Layer
Andreas Hocevar
ahocevar at opengeo.org
Mon Nov 7 04:31:01 EST 2011
Hi,
XYZ layers usually use cached tilesets where the server cache controls browser caching by using etags and/or appropriate cache header. So it should not be necessary to use a random param to invalidate the browser cache.
It seems you have access to the server or do something in your application that changes tiles on the server, and this is why you want a redraw on the client. If so, it should also be possible for you to use etags. If not, I'd suggest dealing with this on the application level, e.g. by changing the layer's url before the redraw.
Andreas.
On Nov 4, 2011, at 17:58 , JD wrote:
> Hi,
> I try to force redraw of a XYZ layer on timeout using the redraw(true)
> method on layer.
>
> But it doesn't seems to do the trick, no random argument is added to
> HTTP GET tiles requests.
>
> After some time looking code I modified XYZ class.
> http://trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Layer/XYZ.js
>
>> From :
> 129 getURL: function (bounds) {
> 130 var xyz = this.getXYZ(bounds);
> 131 var url = this.url;
> 132 if (OpenLayers.Util.isArray(url)) {
> 133 var s = '' + xyz.x + xyz.y + xyz.z;
> 134 url = this.selectUrl(s, url);
> 135 }
> 136
> 137 return OpenLayers.String.format(url, xyz);
> 138 },
>
> To :
> 129 getURL: function (bounds) {
> 130 var xyz = this.getXYZ(bounds);
> 131 var url = this.getFullRequestString();
> 132 if (OpenLayers.Util.isArray(url)) {
> 133 var s = '' + xyz.x + xyz.y + xyz.z;
> 134 url = this.selectUrl(s, url);
> 135 }
> 136
> 137 return OpenLayers.String.format(url, xyz);
> 138 },
>
> It seems that random parameter added to class this.params are only
> used by HTTPRequest::getFullRequestString and ignored by XYZ::getURL.
> After some tests this modification seems to work fine.
>
> Can you tell me if this is a genuine bug or I simply use the
> OpenLayers API incorrectly ?
>
> Thanks,
> JD.
> _______________________________________________
> Dev mailing list
> Dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-dev
--
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.
More information about the Dev
mailing list