前端缓存

Disk Cache Vs Memory Cache

一、内存和硬盘

内存:计算机运行过程中会把需要的计算数据调到内存中进行运算。主要分为RAM(随机存储器)、ROM(只读存储器)、Cache(高速缓存)。

硬盘:计算机的“外存”,用来存放暂时不用的信息。硬盘上的数据只有被装入内存后才能被处理。

二、Memory Cache : the lookahead downloader

“Have you heard of the preloader? It has sharp teeth all made of regex and it fetches everything it lays its eyes on” —— https://calendar.perfplanet.com/2013/big-bad-preloader/

Memory Cache相当于内存中的缓存,几乎所有的网络请求资源都会被自动加入到其中。但是由于浏览器占用的内存不能无限扩大,所以一个Tab页面关闭后,本次浏览的Memory Cache即失效(为了给后来的Tab腾出位置)。

作用:保证了一个页面中如果有俩个相同的请求都实际只会被请求最多一次,不造成浪费。

几乎所有的网络请求都能进入Memory Cache主要理解为preloaderpreload俩个内容:

1、Preloader: 当页面中有多个Javascript脚本或是其他CSS外部文件等资源时,浏览器会一直等待当前资源解析完才去下载另一个外部资源,在这个解析的过程中network就是闲置的,而简单来说Preloader的作用就是找到当前页面需要加载的外部资源,在解析资源过程中提前加载后续外部资源。

2、Preload: 显示指定的预加载资源。

三、Disk Cache

实际存储于文件系统中的,允许相同的资源在跨会话、跨站点的情况下使用。会根据HTTP头信息中的各类字段来判定哪些资源可以缓存以及缓存时效。当命中缓存后,会从硬盘中读取资源,速度低于内存,但是高于网络请求。

四、Service Worker Application -> Cache Storage

Memory Cache和Disk Cache都是浏览器内部根据我们设置的某些字段来进行判断和进行的,而Service worker给了我们直接操作缓存的能力,当然这个缓存是指 “Application -> Cache Storage”中的缓存区。

# 缓存

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×