Zooming Fixed, Thoughts on Caching
I’ve changed the navigation to work to a fixed grid pattern, which should make moving around the map a bit more predictable for the cache and for the user. Everytime I make a change to that area of the code I get reminded that something fairly significant will have to be changed before I can support any large number of users. Although the caching mechanism will protect the server CPU from heavy loading (once the cache is populated) as the map image will not be regenerated, the file is treated as a complete new image every time. This made sense back when I was just trying to get the whole thing working and was foiled by my browser cache, but it makes less sense when I consider that I’m throwing away bandwidth by not trying to use the user’s browser cache and/or their proxy cache as much as possible.
I already build the image from “layers”, in order to take advantage of the low (and currently zero) volatility of the geographical part of the map. I need to look into extending that out to the internet caches by using the layers on the client end too, so allowing local caching of the images. With luck, I can use PNG transparencies to layer in a normal browser, but if not, this may be the killer blow for moving to an AJAX implementation.

