是缓存还是缓存?

时间:2017-09-28 07:29:01

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

我在渐进式网络应用上阅读google slide,他们提到缓存界面有以下方法

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

但在实际实施的其他幻灯片中,他们有时会使用缓存 s (有s),有时还会使用缓存

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.open cache.match()等方法

我想知道缓存缓存是2个不同的对象(或界面)还是我在这里缺少的?

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

3 个答案:

答案 0 :(得分:8)

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

// 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。< / p>

答案 1 :(得分:1)

确切地说,缓存存储缓存对象。同时引用progressive Web apps

链接附带的图片(Google Chrome中的开发者工具)中的示例

A list of cache under Cache Storage can be seen in Browser's Developer Tool 要阅读有关缓存的更多信息,请参阅CacheStorage

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

答案 2 :(得分:0)

缓存在各种用例中非常有用。例如,当值计算或检索的代价很高时,您应该考虑使用缓存,并且您需要对某个输入多次使用其值。

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