Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果数据存在于localStorage中,如何返回它,或者以其他方式执行AJAX请求?_Javascript_Jquery_Ajax - Fatal编程技术网

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(它在对象内部)