在控制台输入window. caches可输出一个叫做CacheStorage的对象,它用来存储 Response 对象的。也就是说用来对 HTTP ,响应做缓存的。虽然 localStorage 也能做,但是它可能更专业。

CacheStorage 在浏览器上的引用名叫 caches 而不是驼峰写法的 cacheStorage,它定义在 ServiceWorker 的规范中。CacheStorage 是多个 Cache 的集合,而每个 Cache 可以存储多个 Response 对象。

caches.delete('c1');

caches.delete('c2');

Promise.all([

caches.open('c1').then(function(cache) {

return cache.put('/hehe', new Response('aaa', { status: 200 }));

}),

caches.open('c2').then(function(cache) {

return cache.put('/hehe', new Response('bbb', { status: 200 }));

})

]).then(function() {

return caches.match('/hehe');

}).then(function(response) {

return response.text();

}).then(function(body) {

console.log(body);

});

首先,在 caches 上调用 open 方法就可以异步地得到一个 Cache 对象的引用。在这个对象上我们可以把 Response 对象 put 进去(参数是一个 URL 和一个 Response 对象)、用 match 方法取出(传入一个 URL 取出对应的 Response 对象)。

match 方法不仅可以在 Cache 上调用 CacheStorage 上也有 match 方法,比如上面例子就打开了两个 Cache,都写入一个叫 /hehe 的 URL。在写入操作完成之后,到外部的 CacheStorage 上调用 match 方法来匹配 /hehe,结果是随机的(没找到这个规则在哪里定义的)。

虽然上面的例子中只对 Cache 对象 put 了一个数据,而 Cache 对象本身可以存放更多的 URL/Response 对。并且提供了 delete(用户删除)、keys(用于遍历)等方法。但是 Cache 并不像 localStorage 一样有 clear 方法,如果非要清空一个 Cache,可以直接在 CacheStorage 上把整个 Cache 给 delete 掉再重新 open。

这套 API 和 ServiceWorker 一家的,它通常被用于 ServiceWorker 中,整个设计风格也和 ServiceWorker 一样都基于 Promise。

转载于:https://www.cnblogs.com/ndos/p/8261700.html

浏览器根对象window之caches相关推荐

  1. 浏览器根对象window之performance

    Navigator的5个主要属性: appName:Web浏览器的名称 appVersion:浏览器的版本号和其他版本信息 userAgent:浏览器在它的USER-AGENT HTTP标题中发送的字 ...

  2. 浏览器根对象document之字符串属性

    1.1 停止使用的属性 fgColor.linkColor.vlinkColor.alinkColor.bgColor. 1.2 文档地址 document.URL 与documentURI属性返回同 ...

  3. 浏览器对象模型:window对象2

    ---恢复内容开始--- window对象代表当前浏览器中的窗口或标签,位于浏览器对象模型中的最顶端,其中包含了描述浏览器的对象. 属性                                ...

  4. Selenium Webdriver 的使用java执行js代码 解决 ScriptEngine不支持浏览器内置对象window,document的问题

    问题场景: 使用java 掉用js代码,发现 ScriptEngine不支持浏览器内置对象window,document的问题: 问题一:为什么要 用java掉用js代码? 比如在 抓取(爬取)对方网 ...

  5. java获取浏览器window对象,Window 浏览器窗口对象

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. Window 浏览器窗口对象 代表整个窗口Window属性如 ...

  6. JavaScript 的自定义对象 、内置对象、 浏览器对象(window对象以及子对象)、Dom对象

    JS 中的 Object从本质上看,Object 是一个构造函数,用于创建对象. console.dir(Object); //ƒ Object() var obj = new Object(1); ...

  7. JavaScript浏览器的对象

    一,JS浏览器对象-window对象 1.可以直接作为对象调用函数,window本身也有一些元素:innerHeight和 innerWidth 2.open()  和 close() 函数 < ...

  8. JavaScript的全局作用域、全局对象window

    不在任何函数内定义的变量就具有全局作用域.实际上,JavaScript默认有一个全局对象window ,全局作用域的变量实际上被绑定到window 的一个属性: 'use strict';//严格模式 ...

  9. JavaScript浏览器对象Window对象常用方法(3)

    1.window对象常用方法 1.window对象常用方法见表 有时候定时器有很多这个时候我们就需要给定时器设置一个名字,如以下代码所示: var times1 = setTimeout(" ...

  10. JS中document对象 window对象

    所有的全局函数和对象都属于Window对象的属性和方法. 区别: 1.window 指窗体.Window 对象表示浏览器中打开的窗口. document指页面.document是window的一个子对 ...

最新文章

  1. 多页面(MPA)开发 VS 单页面(SPA)开发
  2. python如何处理异常,让程序不结束继续运行?
  3. python 开发工具_「干货」推荐一整套 Python 开发工具
  4. rk3399 io工具的使用示例
  5. Ubuntu20.10 安装RedNotebook,一款不错的日记本
  6. linux安装系统识别不到硬盘,安装系统找不到硬盘解决方法【图文教程】
  7. 从应用层设置mx31-pdk板的lcd背光亮度
  8. 计算机常用计算单位换算关系,计算机单位换算
  9. WebDriver - 设置浏览器启动语言
  10. 炫界 (667) -(回应骑两小)_西番莲小棚架高产优质栽培技术,既能高产,又能保证质量...
  11. 分析注释 sequence_input_layer.py
  12. iDB-数据库自动化运维平台
  13. RTX客户端插件开发 for Delphi XE6 (一)
  14. 101条计算机经典名言(英汉对照版)
  15. 69的人因为穷不谈恋爱,这届年轻人脱单太难了
  16. 前端ajax实现分页思路详解
  17. HTML+CSS+Javascript简易记账本(localStorage)
  18. Android平板app开发布局文件,Android平板开发相关
  19. python可以自学吗需要什么基础-自学python需要什么基础,要掌握哪些知识?
  20. 肖申克的救赎(转贴)

热门文章

  1. 事务失败返回_分布式事务有这一篇就够了!
  2. MAC上安装JDK后的所在目录
  3. onfigure: error: cannot find install-sh, install.sh, or shtool in
  4. 没有用括号确定操作符的优先级顺序,导致错误一例
  5. GIT在WINDOWS/LINUX下载的源码,回车换行有差异
  6. Windows下杀进程的命令
  7. LINUX中获得cpu名称
  8. 解决TortoiseGit文件夹和文件状态图标不显示问题
  9. 解决办法:KeyError: ‘ExpandBackward’及老版本pytorch/torchvision的安装办法。
  10. LINUX获得毫秒时间戳的代码