Caching data using object 2
Caching Data API responses using object.
by FiNGAHOLiC
HTML
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
<button>Get tweet!</button>
JavaScript
// http://msdn.microsoft.com/en-us/scriptjunkie/gg723713
var cachedTweetPromises = {};
$.cachedGetTweet = function(query, callback){
console.log(cachedTweetPromises[query] ? 'FROM [CACHE]' : 'FROM [AJAX]');
if(!cachedTweetPromises[query]){
cachedTweetPromises[query] = $.Deferred(function(defer){
$.ajax({
url : 'http://search.twitter.com/search.json',
dataType : 'jsonp',
data : {
result_type : 'recent',
rpp : 10,
page : 1,
q : query
}
}).then(defer.resolve, defer.reject);
}).promise();
};
return cachedTweetPromises[query].done(callback);
};
$(function(){
var $button = $('button');
$button.on('click', function(){
$.cachedGetTweet('fingaholic', function(res){
console.log(res);
});
});
});