Skip to content

Instantly share code, notes, and snippets.

@KATT
Created August 22, 2012 10:02
Show Gist options
  • Save KATT/3424124 to your computer and use it in GitHub Desktop.
Save KATT/3424124 to your computer and use it in GitHub Desktop.
// Ajax Get. Cached. And aborts current request
var get = (function($) {
var xhr;
var xhrURL;
var cache = {};
return function(url, callback, jsonp) {
url += ((url.indexOf('?') === -1) ? '?' : '&');
url += jsonp ? 'callback=?' : 'ajax=1';
if (url == xhrURL && xhr.readystate != 4) {
// Already loading stuff, wait for it to finish
return;
}
if(xhr && xhr.readystate != 4){
xhr.abort();
}
xhrURL = url;
if (cache.hasOwnProperty(url)) {
callback(false, cache[url]);
return;
}
xhr = $.get(url, function(data) {
cache[url] = data;
callback(false, data);
}).error(function(e) {
callback(e);
});
};
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment