微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-如何在jQuery中缓存$.post-request的结果?

我有一个小的jQuery脚本,可以通过查看ID来获取信息.

防止多次请求相同数据的最佳方法是什么(例如,在jQuery中进行缓存的最佳做法是什么?)?

我试图使用$.post和$.ajax并将选项“ cache”设置为true,但是该请求被发送了多次.

保存收集的数据并使用集查看是否必须请求它更好吗?

欢迎任何想法和建议!

如果重要的话,我在服务器端使用ASP.Net MVC.

解决方法:

您在文档中看到的缓存选项是指浏览器的缓存.

您可以通过多种方式实现自记忆函数模式,目标是确定参数(在您的情况下为id)的函数结果仅计算一次.

由于您使用的是Ajax请求,因此建议您也使用回调参数,例如:

var getInfo = (function () {
  var cache = {}; // results will be cached in this object

  return function (id, callback) {
    if (cache[id] != null) { // if exist on cache
      callback(cache[id]);
      return;
    }
    // doesn't exists on cache, make Ajax request and cache it
    $.post("info.url", { "id": id }, function (data) { 
      cache[id] = data; // store the returned data
      callback(data);
    });
  };
})();

用法示例:

getInfo(5, function (data) {
  alert(data);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐