【问题标题】:How to store the ajax response in browser cache with jquery如何使用 jquery 将 ajax 响应存储在浏览器缓存中
【发布时间】:2013-11-23 11:23:59
【问题描述】:

我正在尝试将 ajax 响应存储在浏览器缓存中。我知道只为(example.com)之类的url存储它,但想存储具有url之类的数据(example.com?xyz=abc%20efg&mno=hjk)。

我的代码:

beforeSend: function () {
                var addC=url;          // I want to add data also with this url
                console.log(addC);
                if (localCache.exist(addC)) {
                    printRes(localCache.get(url));
                    console.log("cached values");
                    return false;
                }
                return true;
            },

var localCache = {
    data: {},
    remove: function (url) {
        delete localCache.data[url];
    },
    exist: function (url) {
        return localCache.data.hasOwnProperty(url) && localCache.data[url] !== null;
    },
    get: function (url) {
        console.log('Getting in cache for url' + url);
        return localCache.data[url];
    },
    set: function (url, cachedData, callback) {
        localCache.remove(url);
        localCache.data[url] = cachedData;
        if ($.isFunction(callback)) callback(cachedData);
    }
};

请任何人帮我解决这个问题。

【问题讨论】:

  • 这里问什么?每个 url 只是映射对象中一个值的键,有或没有参数。您是否在问如何将对象转换为 URL 编码的字符串?如果是这样,请查看this question。仍然不确定这是否会正常工作,因为您需要确保 url 参数始终处于正确的顺序...

标签: javascript jquery ajax caching browser-cache


【解决方案1】:

通过阅读来自的docs MDN 我认为你做错了。如果你想缓存ajax响应CACHE属性到true 在您的 ajax 调用中,还要确保您从服务器提供了正确的缓存过期标头。 还 [来自 MDN]

永远不要使用传统的 GET 参数(如 other-cached- page.html?parameterName=value)。这将使浏览器绕过缓存并尝试获取 它来自网络。要链接到具有在 JavaScript 中解析的参数的缓存资源,请使用 链接哈希部分的参数,例如 other-cached-page.html#whatever?parameterName=value。

如果你正在寻找本地存储[键值存储]

globalStorage['cache_1'].setItem("key",data);

【讨论】:

  • 感谢您回答我的问题。我想要做的是当用户请求某些数据时,ajax 会将请求发送到服务器,当第一次从服务器接收到数据时,它必须存储在浏览器缓存中。当用户下次请求相同的数据时,将从缓存中显示。当我使用 url /example 时,我的代码有效。但我的问题是我对相同的 url 有不同的请求,它会显示不同请求的缓存数据。因此,我想将ajax data: 也与url: 一起使用。
猜你喜欢
  • 2013-06-10
  • 1970-01-01
  • 2017-07-16
  • 2012-07-15
  • 2012-07-25
  • 2017-06-13
  • 2014-03-08
  • 2011-04-23
相关资源
最近更新 更多