🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 浏览器缓存 浏览器根据一下两个返回的头信息判断请求操作 Expires:时间,告诉浏览器在该时间前可以使用本地缓存 Cache-Control:控制缓存有效时间 Last-Modified:缓存失效后,向服务器查询是否有更新 - 本地缓存阶段:先在本地查找该资源,如果有发现该资源,而且该资源还没有过期,就使用这一个资源,完全不会发送http请求到服务器; - 协商缓存阶段:如果在本地缓存找到对应的资源,但是不知道该资源是否过期或者已经过期,则发一个携带Last-Modified/Etag的http请求到服务器,然后服务器判断这个请求,如果请求的资源在服务器上没有改动过,则返回304,让浏览器使用本地找到的那个资源; - 缓存失败阶段:当服务器发现请求的资源已经修改过,或者这是一个新的请求(在本来没有找到资源),服务器则返回该资源的数据,并且返回200, 当然这个是指找到资源的情况下,如果服务器上没有这个资源,则返回404。 ## 服务器缓存 - cdn实现 - Combo服务:将多个资源合并成一个文件,一次返回。 ## HTML5缓存 - localstorage:用户可离线访问你的应用,这对于无法随时保持联网状态的移动终端用户来说尤其重要 用户访问本地的缓存文件,通常意味着更快的访问速度 仅仅加载被修改过的资源,避免同一资源对服务器多次的请求,大大降低了对服务器的访问压力 - 离线存储manifest ***** 参考链接 [参考](http://imweb.io/topic/55c6f9bac222e3af6ce235b9)