我在渐进式网络应用上阅读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个不同的对象(或界面)还是我在这里缺少的?
请提供一些资源或链接以了解更多相关信息。
答案 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中的开发者工具)中的示例
要阅读有关缓存的更多信息,请参阅CacheStorage。
(因为“你可以通过全局缓存属性访问CacheStorage”,所以它是同一件事。)
答案 2 :(得分:0)
缓存在各种用例中非常有用。例如,当值计算或检索的代价很高时,您应该考虑使用缓存,并且您需要对某个输入多次使用其值。
缓存类似于ConcurrentMap,但不完全相同。最根本的区别在于ConcurrentMap会持久保存添加到其中的所有元素,直到它们被明确删除。另一方面,缓存通常被配置为自动逐出条目,以便限制其内存占用。在某些情况下,由于加载缓存的自动缓存加载,即使它没有逐出条目,它也很有用。