Javascript 如果数据存在于localStorage中,如何返回它,或者以其他方式执行AJAX请求?
对不起,措辞不好。这是密码Javascript 如果数据存在于localStorage中,如何返回它,或者以其他方式执行AJAX请求?,javascript,jquery,ajax,Javascript,Jquery,Ajax,对不起,措辞不好。这是密码 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
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);
})
如何对其进行重新格式化,以便我可以在不预期数据是否在本地存储中的情况下获取数据?您可以向
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
});
我假设第一个代码块引用了
this.getJSON
?@soktinpk my error-updated(它在对象内部)