【问题标题】:Is that caches or cache?这是缓存还是缓存?
【发布时间】:2018-03-09 20:31:33
【问题描述】:

我正在阅读 google slide 的渐进式 Web 应用程序,他们提到缓存接口具有以下方法

cache.add() 
cache.addAll()
cache..put()
cache.delete()
cache.keys()
cache.match()
cache.matchAll()

但在实际实现中的进一步幻灯片中,他们有时使用 caches (with s),有时使用 cache

caches.open()  // whereas this method was not mentioned anywhere

caches.keys() 
caches.delete()
caches.match()

cache.put () // only here using cache 

另外,在MDN中检查是否相同

他们正在编写 Cache.add、Cache.addAll 和 Cache.put(大写 c)

并使用 caches.opencache.match() 等方法

我想知道 cachecaches 是 2 个不同的对象(或接口)还是我在这里缺少什么?

请提供一些资源或链接以了解更多信息。

【问题讨论】:

    标签: javascript caching service-worker progressive-web-apps


    【解决方案1】:

    window.caches 是一个CacheStorage 接口,它存储所有命名为Cache 的对象。例如,window.caches.open() 方法返回一个解析为 Cache 对象的承诺。

    // Get a named Cache object from CacheStorage
    window.caches.open('cachename').then(cache => {
        // Work with resolved cache object (instance of Cache)
    });
    

    因此,每当它们引用 caches 时,它们都表示全局 CacheStorage 接口,而 cache 是任意命名的变量,用于存储已打开/已解决的单个 Cache

    【讨论】:

    • 您可以通过注意 then(cache => ... 是任意命名的变量来使其更加清晰。then(myCache => ... 完全相同并且将其命名为 cache 只是一种约定。
    • 感谢漂亮的分析器,但仍然不清楚单个缓存是什么意思?我的理解是Caches = [{cache},{cache}] 对吗?
    • 个人缓存是什么意思? Service Worker 缓存还是浏览器缓存?
    • Cache 对象是一个服务工作者缓存。根据文档,您也可以在窗口范围内使用它,您不需要服务人员。您可以拥有多个Cache 对象,它们都存储在全局CacheStorage 接口中(可通过window.caches 访问)。
    • 谢谢。但我说的是服务工作?如果你能提供一些我不使用 service-worker 的正当理由会很有帮助?
    【解决方案2】:

    准确地说,缓存存储缓存对象。还从您的progressive Web apps链接中引用了所附图片中的示例(Google Chrome 中的开发者工具)

    要了解有关缓存的更多信息,请参阅 CacheStorage

    (因为“您可以通过全局缓存属性访问 CacheStorage”所以它是一回事。)

    【讨论】:

      【解决方案3】:

      缓存在各种用例中都非常有用。例如,当一个值的计算或检索成本很高时,您应该考虑使用缓存,并且您将多次在某个输入上需要它的值。

      Cache 与 ConcurrentMap 类似,但并不完全相同。最根本的区别是 ConcurrentMap 会保留所有添加到其中的元素,直到它们被显式删除。另一方面,缓存通常配置为自动驱逐条目,以限制其内存占用。在某些情况下,由于 LoadingCache 会自动加载缓存,即使它不会驱逐条目,它也会很有用。

      【讨论】:

      • 问题是关于名为Cache 的对象和名为Caches 的对象之间的区别(如果有的话),而不是关于缓存是什么
      • 感谢缓存的洞察力,但这不是我要找的。​​span>
      猜你喜欢
      • 2011-06-15
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多