我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript中有哪些缓存API

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript中有哪些缓存API

JavaScript中有哪些缓存API,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

检测Cache支持

检查 caches 对象在 window 中是否可用。

let isCacheSupported = 'caches' in window;

caches 是 CacheStorage 的一个实例。

创建/初始化Cache

我们可以使用 open 方法创建一个具有 name 的缓存,这将返回 promise。如果缓存已经存在,则不会创建新的缓存。

caches.open('cacheName').then( cache => { });
  • 你不能访问为其他源(域)设置的缓存。

  • 你正在创建的缓存将为你的域创建。

  • 你可以为同一个域添加多个缓存,可以通过 caches.keys() 访问。

将项目添加到缓存

可以使用三种方法 add,addAll,set 来缓存资源。add() 和 addAll() 方法自动获取资源并对其进行缓存,而在 set  方法中,我们将获取数据并设置缓存。

add

let cacheName = 'userSettings'; let url = '/api/get/usersettings'; caches.open(cacheName).then( cache => {    cache.add(url).then( () => {        console.log("Data cached ")     }); });

在上面的代码中,内部对 /api/get/usersettings url的请求已发送到服务器,一旦接收到数据,响应将被缓存。

addAll

addAll 接受URL数组,并在缓存所有资源时返回Promise。

let urls = ['/get/userSettings?userId=1', '/get/userDetails']; caches.open(cacheName).then( cache => { cache.addAll(urls).then( () => {        console.log("Data cached ")     }); });

Cache.add/Cache.addAll 不缓存 Response.status 值不在200范围内的响应,Cache.put  可以让你存储任何请求/响应对。

put

put 为当前的 Cache 对象添加一个key/value对,在 put 中,我们需要手动获取请求并设置值。

注意:put() 将覆盖先前存储在高速缓存中与请求匹配的任何键/值对。

let cacheName = 'userSettings'; let url = '/api/get/userSettings'; fetch(url).then(res => {   return caches.open(cacheName).then(cache => {     return cache.put(url, res);   }) })

从缓存中检索

使用 cache.match() 可以得到存储到URL的 Response。

const cacheName = 'userSettings' const url = '/api/get/userSettings' caches.open(cacheName).then(cache => {   cache.match(url).then(settings => {     console.log(settings);   } });

settings 是一个响应对象,它看起来像

Response {   body: (...),   bodyUsed: false,   headers: Headers,   ok: true,   status: 200,   statusText: "OK",   type: "basic",   url: "https://test.com/api/get/userSettings" }

检索缓存中的所有项目

cache 对象包含 keys 方法,这些方法将拥有当前缓存对象的所有url。

caches.open(cacheName).then( (cache) => {   cache.keys().then((arrayOfRequest) => {       console.log(arrayOfRequest); // [Request,  Request]   }); });

arrayOfRequest是一个Request对象数组,其中包含有关请求的所有详细信息。

检索所有缓存

caches.keys().then(keys => {   // keys是一个数组,其中包含键的列表 })

从缓存中删除项目

可以对 cache 对象使用 delete 方法来删除特定的缓存请求。

let cacheName = userSettings; let urlToDelete = '/api/get/userSettings'; caches.open(cacheName).then(cache => {   cache.delete(urlToDelete) })

完全删除缓存

caches.delete(cacheName).then(() => {    console.log('Cache successfully deleted!'); })

关于JavaScript中有哪些缓存API问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript中有哪些缓存API

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript中有哪些数组api

今天就跟大家聊聊有关JavaScript中有哪些数组api,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用
2023-06-14

Java中的缓存池有哪些

Java中的缓存池有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。缓存实体类CacheItem 中存放管理学生实体对象Student ,缓存实体类CacheItem
2023-05-31

Redis缓存中有哪些问题

这篇文章给大家分享的是有关Redis缓存中有哪些问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、缓存穿透缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起 id 为-1 的数据或者特别大的不
2023-06-20

php中缓存方法有哪些

这篇“php缓存方法有哪些”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php缓存方法有哪些”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。php有
2023-06-06

java中有哪些缓存模式

java中有哪些缓存模式?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3.
2023-06-14

java中Hibernate有有哪些缓存形式

今天就跟大家聊聊有关java中Hibernate有有哪些缓存形式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序
2023-06-14

python有哪些缓存机制

python有哪些缓存机制内存缓存、数据结构缓存、缓存装饰器、对象代理缓存、缓存库、分布式缓存、缓存策略、缓存失效机制以及压缩和编码等。详细介绍:1、内存缓存,Python的内存管理机制会自动缓存经常使用的对象,以减少内存分配和垃圾回收的开
python有哪些缓存机制
2023-11-16

php有哪些缓存机制

php缓存机制有Opcode缓存、数据缓存、页面缓存、数据库查询缓存、分布式缓存、缓存插件、元数据缓存、缓存策略、缓存命中与失效以及压缩和编码等。详细介绍:1、Opcode缓存,Opcode是PHP代码的中间代码表示形式,它可以在执行之前被
php有哪些缓存机制
2023-11-16

php缓存类型有哪些

本篇内容介绍了“php缓存类型有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php缓存类型有5种:1、数据缓存,即数据库查询PHP缓存
2023-06-22

redis缓存机制有哪些

redis缓存机制有内存存储、数据过期、缓存淘汰策略、数据操作原子性、持久化、发布订阅模型、事务处理、Lua脚本执行、分布式缓存以及监控和管理工具等。详细介绍:1、内存存储,Redis使用内存存储数据,这使得读取和写入操作非常快速,它将数据
redis缓存机制有哪些
2023-11-16

html缓存机制有哪些

html缓存机制有浏览器缓存、缓存HTTP头、Expires、ETag、Last-Modified等。详细介绍:1、浏览器缓存,是一种基于浏览器的缓存机制,它将之前访问过的网页内容存储在用户的计算机上,以便在下次访问时能够更快地加载和显示网
html缓存机制有哪些
2023-11-15

编程热搜

目录