Hey- Dipl. Inf. Carsten Eider wrote: > Hi list, > > while examining my WMS-Servers logs i was surpprised by the amount of > WMS-requests I found within. > Using Firefox and Firebug i recognized, that the tiles were not cached > by the browser, i.e. > each time they came into the viewport of the map they were re-requested! > > Is there a way to use cached images by the browser instead of requesting > them time and again? >
Caching is best controlled by using the appropriate headers in your server responses. If your server responds with an Expires header, we can't force the browser to use a cached image (without essentially rewriting our own cache) if the Expires date has been reached. If your server (or gateway cache) uses Etag or Last-Modified headers, the browser will try to make requests with If-None-Match or If-Modified-Since headers. If the server responds with 304, Not Modified, the browser will pull from its cache. Looking at the http://openlayers.org/dev/examples/example.html example, you can see Etag headers on the static images (west-mini.png etc.). The GetMap responses from openlayers.org contain Expires headers corresponding to the request time (so they immediately expire). The GetMap responses from www2.dmsolutions.ca don't contain any cache related headers. When you refresh the page, requests for static images return 304, Not Modified, and the browser pulls those from its cache. Previous responses for GetMap images make the browser think those should not be cached, so they are requested with Cache-Control: max-age=0. We can't override the headers in this case, so if your server obeys, it will do whatever it does to generate new GetMap responses. So, you can improve the caching situation by having your server (or gateway cache) use appropriate headers on responses. If you configure a gateway cache like Varnish or Squid in front of your WMS, this should be handled for you. If you use a tile generator to pre-seed a tile cache and serve those statically, you can configure your server to use Last-Modified headers. If you are confident that you won't be updating static images, use future Expires headers to avoid the intermediate request with If-None-Match or If-Modified-Since headers. The short story is that for image requests and effectively using the browser's cache, OpenLayers isn't the place to make changes. Oh, and re-reading your question, I see you were talking about panning/zooming instead of reloading the page. The same advice applies, with the additional note that your browser cache can eventually fill up. I think the default configuration for Firefox is 50MB. Hope that is some help. Tim > THX > Carsten > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Dev mailing list > Dev@openlayers.org > http://openlayers.org/mailman/listinfo/dev -- Tim Schaub OpenGeo - http://opengeo.org Expert service straight from the developers. _______________________________________________ Dev mailing list Dev@openlayers.org http://openlayers.org/mailman/listinfo/dev