首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome内存缓存与磁盘缓存

Chrome内存缓存与磁盘缓存
EN

Stack Overflow用户
提问于 2017-06-17 03:48:38
回答 2查看 85.3K关注 0票数 123

我对chrome内存缓存和磁盘缓存感兴趣?我使用的是webpack,通用的chunks插件,所有的文件都是用chunkhash生成的。

内存与磁盘缓存有何不同。当我重新加载页面时,一些文件从内存缓存加载,一些文件从磁盘缓存加载(从内存缓存加载bundle.js和image.jpg,从磁盘缓存加载css )。有时候是不一样的。我们能控制它,选择从哪里加载什么吗?内存缓存似乎比磁盘缓存更快。

EN

回答 2

Stack Overflow用户

发布于 2018-02-01 15:18:05

就像他们的名字所说的:

“内存缓存”将资源存储在内存(RAM)中,并从内存(RAM)加载资源。因此,这要快得多,但它是非持久性的。只有在关闭浏览器后,内容才可用。

“磁盘缓存”是持久的。存储缓存的资源,并将其加载到磁盘或从磁盘加载。

简单测试:打开Chrome Developper Tools / Network。多次重新加载页面。表列"Size“将告诉您某些文件是”从内存缓存“加载的。现在关闭浏览器,再次打开Developper Tools / Network并再次加载该页面。所有缓存的文件现在都是“从磁盘缓存”加载的,因为内存缓存是空的。

票数 105
EN

Stack Overflow用户

发布于 2018-01-24 20:02:03

Chrome在很多抽象层次上实现了缓存。核心是HTTP (浏览器)缓存-其他缓存机制的后端。一般来说,缓存可以分为以下几类:

  • HTTP缓存
  • 服务工作线程缓存
  • Blink缓存

HTTP缓存

通过网络发出的每个请求都由遵守RFC的HTTP Cache代理。当第一次请求时,高速缓存被重写。资源以源url为关键字。

服务工作线程缓存

要优雅地处理网络连接故障,您可以使用Service Workers。高速缓存和高速缓存存储将再次从磁盘中取出。

闪烁缓存

Blink在两种创建模式中使用Http缓存作为后端-在内存中和简单(文件系统)。使用哪一个取决于为缓存设置的全局限制,它们可以占用多少内存。此外,当前渲染器缓存也会获得最大份额。缓存的是字体、图像和脚本。如果全局内存使用率达到某个指定阈值,则使用文件系统后端。

内存缓存中的强制

使用File Api,可以读取资源并将其存储到内存中的对象中。则重写fetch事件将抑制从该全局对象提供的内容的网络和文件读取。

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44596937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档