Skip to content

Instantly share code, notes, and snippets.

@k0pernikus
Forked from kpuputti/gist:1040118
Created October 8, 2012 15:14
Show Gist options
  • Save k0pernikus/3853059 to your computer and use it in GitHub Desktop.
Save k0pernikus/3853059 to your computer and use it in GitHub Desktop.
jQuery.getJSON abstraction to cache data to localStorage with invalidation option based time
jQuery.extend({
getCachedJSON: function (url, callback) {
var cacheTimeInMs = 3600000;
var currentTimeInMs = new Date().getTime();
var cache = {
data:null,
timestamp:null
};
if (typeof window.localStorage[url] !== "undefined") {
cache = JSON.parse(window.localStorage[url]);
var validCache = (currentTimeInMs - cache.timestamp) < cacheTimeInMs;
if (validCache) {
callback(cache.data);
return true;
}
}
$.getJSON(url, function (data) {
cache.data = data;
cache.timestamp = new Date().getTime();
window.localStorage[url] = JSON.stringify(cache);
callback(cache.data);
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment