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);
});

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...