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