Chrome|Chrome 里面的 [from disk cache] & [from memory cache]

我们在使用 Chromedevtools 里的 network 查看网络请求情况时,常常会在 Size 那一列看到 (from disk cache)(from memory cache) 的灰字信息,这些信息是什么意思,又是在什么情况下会出现呢?
从字面意思不难理解,这都是浏览器的一种缓存机制。disk 是从硬盘中读取资源,而 memory 则是从内存中获取资源,两者的区别就是内存和硬盘的区别:memory 中的资源是临时的,当关闭或者刷新页面后就会丢失;而 disk 是存在硬盘上的,可以从文件夹中找到。
那是不是 memory 中的资源等下载加载页面的时候又要从服务器获取呢?其实不然,memory 中的资源其实也同时会存在 disk 中,所以下一次加载,浏览器会优先从 disk 中检索。
紧接着的问题:哪些资源会被浏览器缓存?
首先这个资源是需要通过 GET 请求的,然后资源类型为 [ 脚本、样式表、图片、媒体、字体 ] 是会缓存在 disk 中的,而其中的 [ 脚本、图片、字体 ] 又是会缓存在 memory 中的。
最后一个问题:浏览器对缓存资源大小有没有限制?
Chrome 是使用动态缓存机制,也就是说在 默认行为 下,它所使用的缓存空间大小是自我控制的,例如,当网速很慢的是,Chrome 会尝试尽可能多的缓存资源;另外,当你计算机本身就存储空间不足的时候,它又会根据算法存储重要的资源。
【Chrome|Chrome 里面的 [from disk cache] & [from memory cache]】我们上面说到“默认行为”,其实也可以人为控制其使用的缓存空间。设置方法是打开 Chrome 快捷方式的【属性】,在【目标】后面加上 -disk-cache-size=xxx 这个参数,xxx 就是空间大小,单位是 Byte。另外使用 -disk-cache-dir 这个参数还能修改缓存目录。

    推荐阅读