抱歉措辞不好。这是代码
getJSON : function(url) {
if ( localStorage.getItem(url) ) {
console.log('Getting from localStorage instead');
return $.parseJSON(localStorage.getItem(url));
} else {
console.log('No results locally, making XHR request...');
return $.ajax({
url: 'curl.php',
type: 'GET',
data: {
url : url
}
}).done(function (result) {
var json = $.parseJSON(result);
console.log('Setting to localStorage with key:', url);
localStorage.setItem(url, result);
})
}
}
获取数据的两种方式:
如果它在localStorage中,则可行:
console.log(this.getJSON(url))
如果没有,它将返回AJAX对象:
this.getJSON(url).done(function (result) {
console.log(result);
})
如何重新格式化以便我可以获取数据而无需预测它是否在localStorage中?
答案 0 :(得分:3)
您可以在getJSON
方法中添加一个回调参数,如下所示:
this.getJSON = function(callback)
{
if ( localStorage.getItem(url) ) {
console.log('Getting from localStorage instead');
// If it's in local storage execute callback immediately
callback($.parseJSON(localStorage.getItem(url)));
} else {
console.log('No results locally, making XHR request...');
$.ajax({
url: 'curl.php',
type: 'GET',
data: {
url : url
}
}).done(function (result) {
var json = $.parseJSON(result);
console.log('Setting to localStorage with key:', url);
localStorage.setItem(url, result);
callback(json);
});
}
}
然后你可以打电话
getJSON(function(json) {
// Do something with json
});