I have set of promises connecting to server like this one:
function getSomething(data, moreData, evenMoreData){
var dfd = new jQuery.Deferred();
Dajaxice.myProject.getSomethong(function(data){
dfd.resolve(data.result);
}, {'data': data, 'moreData': moreData, 'evenMoreData':evenMoreData});
return dfd.promise();
}
I want to define proxy function called cache, working like this:
cache(getSomething, [data, moreData, evenMoreData])
This function should return promise. The promise will be resolved immediately if 'getSomething' result was found in cashe, otherwise, original 'getSomething' promise will be returned.
I started to write a function:
function cache(funct, args){
if(Modernizr.sessionstorage){
var dfd = new jQuery.Deferred();
var hash = SHA256(WHAT?????);
var cache = sessionStorage[hash];
if(cache)
dfd.resolve(cache);
else{
funct.apply(null, args).then(function(result){
sessionStorage[hash] = result;
dfd.resolve(result);
});
}
return dfd.promise();
}
return funct.apply(null, args);
}
The question is: how should I compute storage key? (i.e. what should I put in place of WHAT???)