优化性能的一种方式就是利用缓存.好的缓存策略可以缩短请求网络的时间,节约带宽.由于缓存可以作为全局变量,所以可以复用,优化代码
1. sessionStorage
- 与localStorage的唯一区别是: localStorage是长期存储,不手动删除,会一直存在;sessionStorage是临时存储,关闭页面就会消失
2. localStorage
- 直接把缓存存到本地,节省带宽
- 可以存储5M,增大了缓存的量,但是缓存太多,会导致浏览器卡
- 浏览器在隐私模式下取不到
- 爬虫不能访问到
- 一般把json变成string类型进行存储
- 不可以跨域,但是可以通过postMessage、iframe实现跨域数据读取
3. cookie
- cookie的存储量比较小,每个domain最多有20条cookie,每条cookie最多4k
- cookie是放到了http请求的header里,如果太大会有性能问题
- cookie较安全,但是如果cookie被拦截了,就可以获取cookie的session。不需要破解,转发就可以达到目的了;
- 存在硬盘的一个文件.cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用
- (1)保存用户登录状态。(2)跟踪用户行为。(3)定制页面。(4)创建购物车,例如淘宝网就使用cookie记录了用户曾经浏览过的商品,方便随时进行比较。
- cookie能完成的部分应用,还有更多的功能需要全局变量。cookie的缺点主要集中于安全性和隐私保护。主要包括以下几种:
- (1)cookie可能被禁用。当用户非常注重个人隐私保护时,他很可能禁用浏览器的cookie功能;
- (2)cookie是与浏览器相关的。这意味着即使访问的是同一个页面,不同浏览器之间所保存的cookie也是不能互相访问的;
- (3)cookie可能被删除。因为每个cookie都是硬盘上的一个文件,因此很有可能被用户删除;
- (4)cookie安全性不够高。所有的cookie都是以纯文本的形式记录于文件中,因此如果要保存用户名密码等信息时,最好事先经过加密处理。
4. CDN缓存
- 如果应用程序web服务器离用户更近,那么一个HTTP请求的响应时间将缩短。另一方面,如果组件web服务器离用户更近,则多个HTTP请求的响应时间将缩短。
- CDN(内容发布网络)是一组分布在多个不同地理位置的Web服务器,用于更加有效地向用户发布内容。在优化性能时,向特定用户发布内容的服务器的选择基于对网络慕课拥堵的测量。例如,CDN可能选择网络阶跃数最小的服务器,或者具有最短响应时间的服务器。
- CDN还可以进行数据备份、扩展存储能力,进行缓存,同时有助于缓和Web流量峰值压力。
- CDN的缺点:
- 响应时间可能会受到其他网站流量的影响。CDN服务提供商在其所有客户之间共享Web服务器组。
- 如果CDN服务质量下降了,那么你的工作质量也将下降
- 无法直接控制组件服务器
5. http缓存
- 避免缓存的方法:
- 在请求的url后+?rander=随机数
- 官方的: 设置请求头1. Data 2. Cache-Control
6. ApplicationCache(应用缓存)
初次访问浏览器 --> 无缓存 --> 向web服务器请求 --> 请求响应 --> 缓存协商 --> 呈现
再次访问浏览器 --> 缓存
初次访问浏览器
第二次请求