Google chrome Chrome内存缓存与磁盘缓存
我对chrome内存缓存与磁盘缓存感兴趣?我使用webpack,common chunks插件,并使用chunkhash生成我的所有文件Google chrome Chrome内存缓存与磁盘缓存,google-chrome,caching,webpack,Google Chrome,Caching,Webpack,我对chrome内存缓存与磁盘缓存感兴趣?我使用webpack,common chunks插件,并使用chunkhash生成我的所有文件 内存与磁盘缓存有何不同。当我重新加载页面时,一些文件从内存缓存加载,一些文件从磁盘缓存加载(bundle.js和image.jpg从内存缓存加载,css从磁盘缓存加载)。有时候是不一样的。我们能控制它,选择从哪里加载什么吗?内存缓存似乎比磁盘缓存快。Chrome在许多抽象级别上实现缓存。其核心是HTTP(浏览器)缓存——其他缓存机制的后端。通常,缓存可分为:
内存与磁盘缓存有何不同。当我重新加载页面时,一些文件从内存缓存加载,一些文件从磁盘缓存加载(bundle.js和image.jpg从内存缓存加载,css从磁盘缓存加载)。有时候是不一样的。我们能控制它,选择从哪里加载什么吗?内存缓存似乎比磁盘缓存快。Chrome在许多抽象级别上实现缓存。其核心是HTTP(浏览器)缓存——其他缓存机制的后端。通常,缓存可分为:
- HTTP缓存
- 服务工作者缓存
- 闪烁缓存
如果您希望从内存覆盖默认机制提供文件,您可以实现自己的服务工作者。使用文件Api,可以读取资源并将其存储到内存中的对象中。然后,重写fetch事件将禁止使用此全局对象提供的内容进行网络和文件读取。正如其名称所述: “内存缓存”在内存(RAM)中存储和加载资源。所以这要快得多,但它是非持久性的。在关闭浏览器之前,内容一直可用 “磁盘缓存”是持久的。缓存的资源被存储并加载到磁盘和从磁盘加载 简单测试: 打开Chrome开发工具/网络。多次重新加载页面。表列“Size”将告诉您一些文件是“从内存缓存”加载的。
现在关闭浏览器,再次打开开发工具/网络并再次加载该页面。由于您的内存缓存为空,所有缓存文件都已“从磁盘缓存”加载。Hi Igor,这是否导致Web包加载问题?你是怎么解决的?没有问题。这只是一个浏览器缓存功能,用于缓存webpack捆绑文件。嗨,Igor,当一些捆绑文件从磁盘加载,而另一些文件从内存加载时,我发现这是一个问题。发生这种情况时,它会抛出一个JSONP错误。这种情况很少发生。我不知道有这么简单。浏览器如何确定哪些资产要存储在内存缓存中,哪些资产要存储在磁盘缓存中?我们可以配置哪些资产应该缓存在内存缓存中吗?我的angular应用程序上有一些iTen,当我在本地运行时从磁盘加载,在生产中,这些文件根本不会被缓存。只有来自内存的缓存才能在生产环境中工作。你们知道是什么引起的吗?@RafaelAndrade请记住,angular提供了多个环境(在src/environments/*.ts中)。environment.prod.ts定义productiv构建环境,其中environment.ts定义本地开发环境。在LocalDevelopmentEnv中,您通常不希望缓存文件,以便您的本地更改始终应用于您的应用程序。