抱歉措辞不当。这是代码
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 中?
最佳答案
您可以向 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
});
关于javascript - 如果localStorage中存在数据,如何返回它,或者执行AJAX请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25026091/