第 35 题:请求时浏览器缓存 from memory cache 和 from disk cache 的依据是什么,哪些数据什么时候存放在 Memory Cache 和 Disk Cache中?

发布于 2022-05-08 11:53:59 字数 720 浏览 1131 评论 12

从缓存位置上来说分为四种:

  • Service Worker
  • Memory Cache
  • Disk Cache
  • Push Cache

如果以上四种缓存都没有命中的话,那么只能发起请求来获取资源了。

memory cache

Memory Cache 也就是内存中的缓存

  • 优点:读取速度快
  • 缺点:一旦我们关闭 Tab 页面,内存中的缓存也就被释放了。
  • 如何触发:当我们访问过页面以后,再次刷新页面,可以发现很多数据都来自于内存缓存

disk cache

Disk Cache 也就是存储在硬盘中的缓存

优点:缓存再硬盘中,容量大

缺点:读取速度满

如何触发:根据浏览器请求头

Service Worker

Service Worker 是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。传输协议必须为 HTTPS,Service Worker 的缓存与浏览器其他内建的缓存机制不同,它可以让我们自由控制缓存哪些文件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。

这个我们不常用

Push Cache

Push Cache(推送缓存)是 HTTP/2 中的内容,当以上三种缓存都没有命中时,它才会被使用。它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存时间也很短暂

这个我们不常用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

治碍゛ 2022-05-04 13:57:03

掘金上这篇文章讲缓存的讲的条理更清晰
一文读懂前端缓存

居里长安 2022-05-04 13:56:58

不对,我自己试过,如果service-work和强缓存同时存在的话, PC上是service-work为主;但是移动端,是以强缓存为主的,我测试的是service-work采用 StaleWhileRevalidate策略,pc上会随着文件更新而下次更新,但是移动端上,不到强缓存时间,是不理会service-work的

-脸赞〃 2022-05-04 13:56:57

浏览器会把哪些文件丢进内存(Memory Cache)中?哪些丢进硬盘(Disk Cache)中?
关于这点,网上说法不一,不过以下观点比较靠得住:

  • 对于大文件来说,大概率是不存储在内存中的,反之优先
  • 当前系统内存使用率高的话,文件优先存储进硬盘

上述内容来自 https://www.jianshu.com/p/54cc04190252

何以心动→ 2022-05-04 13:52:34

这个其实就是强缓存和协商缓存的问题,强缓存会直接去取缓存的文件,而协商缓存会去像服务器发送一次确认文档是否有效的请求。

雪花飘飘的天空 2022-05-04 13:51:23

对于第一个问题前面的文章都说得很详细了我这里就不再赘述
第二个问题可以参考我写的博文 命中强制缓存时,该从哪拿缓存小节。
总的来说:

  1. 如果开启了Service Worker首先会从Service Worker中拿
  2. 如果新开一个以前打开过的页面缓存会从Disk Cache中拿(前提是命中强缓存)
  3. 刷新当前页面时浏览器会根据当前运行环境内存来决定是从 Memory Cache 还是 从Disk Cache中拿(可以看到下图最后几个文件有时候是从 Memory Cache中拿有时候是从Disk Cache中拿)
    这是我的实验过程

注意:以上回答全部基于chrome浏览器

小镇女孩 2022-05-04 13:50:08

大家还是没有说清楚,缓存在什么情况下保存什么位置啊

青柠芒果 2022-05-04 13:04:57

https://www.jianshu.com/p/54cc04190252
浏览器的缓存机制

这篇完美~

溺深海 2022-05-04 12:47:17
~没有更多了~

关于作者

你在我安

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文