缓存可以说是无处不在的存在。先分类,在web缓存里面,可以分为数据库缓存,服务器缓存,代理服务器缓存,CDN缓存以及浏览器缓存。缓存在我脑海里面的映像整体而言就是一个字“快”。
而在前端的缓存里面,主要就是包含的浏览器缓存和HTTP缓存。插播一句,找到一张结构清晰的图,可以让学习和思考事半功倍!直接上图。
在这里,基本定义像强缓存和协商缓存是个啥就不再重复打了,图上都很清晰。至于http缓存的具体判断逻辑也有很多大佬有过很细致的分析。我就讲一下我get到的重点。先装石头再装沙子!
HTTP缓存中:
- 强缓存限于协商缓存判断
- 强缓存比协商缓存更快
- 强制刷新页面(ctrl+F5)会让两种缓存都失效
浏览器缓存中:
- BFcache,往返缓存,是浏览器为了前进后退页面的一种性能优化
当然了,不管是那种缓存,关键词都是快(相对于完全不适用缓存),只有更快。至此,我想通过快来引出另外两个有意思的缓存。
- CDN缓存,服务器端的缓存,通过全局负载DNS技术找到配置好源服务器资源的代理服务器,进而每次请求时,都比直接找原服务器来的快。
- Application Cache离线缓存。通过在html标签里配置Manifest 文件来设置是否缓存。通过这种方式就可以实现离线了,还能加载页面的效果。
一个字就是“快”。相信日后随着学习的深入以及技术的发展趋势,会get到更多的通过缓存来实现的优化方案。欢迎大家来探讨,批评指正!