Browser缓存机制浅析

本文介绍了浏览器的几种缓存机制,包括Memory Cache、Disk Cache/HTTP Cache和Page Cache。Memory Cache存储原始数据和解码后的图片,生命周期与HTML文档相同。Disk Cache保存在磁盘上,缓存主资源和派生资源,HTTP Cache是其协议基础。Page Cache主要用于提高历史操作速度,缓存DOM和Render Tree。
摘要由CSDN通过智能技术生成

  更快的加载时间和更省的流量无疑是所有浏览器都追求的目标。为了达成这个目标,经典的以空间换时间的缓存机制自然必不可少。本文就总结一下浏览器中常见的几种缓存机制,目前本人还没有深入研究这几种缓存机制,所得的资料基本来源于网上,日后有时间必定要对这几种缓存机制进行下系统的研究。

1. 资源分类

 在介绍缓存机制之前,先将资源分类罚抄一下:

WebCore 把要加载的资源分成两类,一类是主资源,比如 HTML 页面,或者下载项,一类是派生资源,比如 HTML 页面中内嵌的图片或者脚本链接。这两类资源对于回调的处理有很大的不同,比如,同样是下载失败,主资源可能需要向用户报错,派生资源比如页面中的一张图下载失败,可能就是图不显示或者显示代替说明文字而已,不向用户报错。

主资源的加载是立刻发起的,而派生资源则可能会为了优化网络,在队列中等待( 这里的立刻发起是 loader 层面的,不是 Network 层面的 ) 。 ResourceScheduler 这个类就是用来管理资源加载的调度。主要调度对象就是派生资源,会根据 host 来影响资源加载的先后顺序。

2. Memory Cache

Memory Cache是专门针对派生资源的,用于保存原始数据(比如CSS , JS 等),以及解码过的图片数据,通过 Memory Cache 可以节省网络请求和图片解码的时间。该种缓存机制顾名思义是缓存在内存中的,他的生命周期同资源所在的HTML文档的生命周期是一致的。

关于Memory Cache的数据结构可以参见这篇文档:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值