jQuery 缓存 JSON 响应

标签 jquery

我正在使用一个基本函数来执行 AJAX 请求并获取 JSON:

function getData(endpoint) {
    return $.ajax({
        type: "GET",
        url: endpoint
    });
}

问题在于,有时端点可能无响应或需要太多时间来加载数据。 在这种情况下,我需要使用上次调用端点时获得的最新 JSON。

我正在寻找一种方法来跟踪 AJAX 响应时间,以及是否超过给定的时间限制,以使用上一个请求的缓存 JSON 响应。

有没有一种优雅的方法可以用 jQuery 来做到这一点?

感谢您的建议

最佳答案

尝试用一些示例代码来解释 Anthony Gris 的评论

var lastResponseData;

function getData(endpoint) {
   return $.ajax({
    type: "GET",
    url: endpoint,
    dataType: 'json',
    timeout: 1000,
    error:function(jqxhr, status){
    if(status==="error"){
      if(lastResponseData!=null){
       //use it
      }
    }
    else
    {
    getData(endpoint); try again
    },
    success:function(data){
     lastResponseData=data;
     //do work
    }

    }
 });
}

关于jQuery 缓存 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19862906/

相关文章:

jquery - :last isn't working

javascript - 我们怎样才能随时加载一个对象?

javascript - 将 jQuery 插件链接到 html

javascript - 如何在 JQuery 中禁用单选按钮的单击而不禁用它?

javascript - 某些属性在 IE 中不起作用

jquery - 有什么方法可以使 div 在高度变化时垂直居中?

jquery - CSS 更大的可点击 href 区域

javascript - qTip(jQuery 插件)如何删除页面中的所有 q 提示?

javascript - 如何使用 JavaScript 猜测文件扩展名(客户端)

javascript - 我想通过 javascript 或 jquery 使用文本本身更改 div 文本