make tile cache aging/reloading actually work
[lantea.git] / js / map.js
index 9ffc81c3f3c99bd90c701384d179a7042b9d0587..1d0c16d6056a66c23e69c01e88a6f2411194fc0d 100644 (file)
--- a/js/map.js
+++ b/js/map.js
@@ -649,7 +649,7 @@ function clearTrack() {
 var gTileService = {
   objStore: "tilecache",
 
-  ageLimit: 14 * 86400, // 2 weeks
+  ageLimit: 14 * 86400 * 1000, // 2 weeks (in ms)
 
   get: function(aStyle, aCoords, aCallback) {
     var norm = normalizeCoords(aCoords);
@@ -659,10 +659,11 @@ var gTileService = {
         // We did get a cached object.
         aCallback(aResult.image, aStyle, aCoords);
         // Look at the timestamp and return if it's not too old.
-        if (aResult.timestamp + this.ageLimit > Date.now())
+        if (aResult.timestamp + gTileService.ageLimit > Date.now())
           return;
         // Reload cached tile otherwise.
-        console.log("reload cached tile: " + dbkey);
+        var oldDate = new Date(aResult.timestamp);
+        console.log("reload cached tile: " + dbkey + " - " + oldDate.toUTCString());
       }
       // Retrieve image from the web and store it in the cache.
       var XHR = new XMLHttpRequest();
@@ -678,8 +679,8 @@ var gTileService = {
       XHR.addEventListener("load", function () {
         if (XHR.status === 200) {
           var blob = XHR.response;
-          gTileService.setDBCache(dbkey, {image: blob, timestamp: Date.now()});
           aCallback(blob, aStyle, aCoords);
+          gTileService.setDBCache(dbkey, {image: blob, timestamp: Date.now()});
         }
       }, false);
       XHR.send();