首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JQuery延迟的缓存承诺

使用JQuery延迟的缓存承诺
EN

Stack Overflow用户
提问于 2015-10-02 16:42:06
回答 1查看 238关注 0票数 1

在查看JQuery延迟承诺的潜在用例时,我发现缓存是潜在的用途之一。这带来了以下问题:在使用现代浏览器和智能客户端(Jquery、任何现代MVC等)时,我甚至需要担心自己缓存什么吗?我使用的是简陋的堆栈,我的印象是缓存在默认情况下确实会发生。标头中有一个Etag字段,确保服务器不会发送两次相同的信息。第二次,客户端将得到304代码与空响应体。那么,是否有任何需要在前端手动实现缓存的用例?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-10-02 17:14:26

整个承诺的概念旨在简化JavaScript程序员异步计算的处理。我可以想象一个有效的用例,当您使用拒绝的承诺提供一些预定义的数据时,但这不是您所称的“缓存”。

如果您有一个延迟对象来处理对异步API的某种请求,则应该由您为静态数据实现缓存层,它可能是.then()函数的一部分。浏览器将向API发送尽可能多的请求,就像在代码中一样,服务器将以相同数量的响应响应,除非它有自己的缓存层。

用于缓存异步计算中的数据的注释用法的Here is an example

代码语言:javascript
复制
// *specialized* function for, say, network requests,
// where caching is desired. In this case, we're caching
// promises by the URL they're fetching
var fetch = (function () {
  var cache = {};
  return function (url) {
    cache[url] = cache.hasOwnProperty(url) ? cache[url] : new Promise(
      /* request magic goes here */
    );
    return cache[url];
  };
});

TL:博士

您不使用缓存承诺,而是为异步计算实现自己的缓存层(为此可以使用记忆模式)。如果您将延迟对象用于此或常规回调,这并不重要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32911913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档