浅析移动开发中的“缓存”

实际项目中经常听开发说,你清一下缓存就好了balabala,但这里说的缓存跟我记忆中的缓存好像不是一个东西。这周末大概查了一下,嗯果然不是一个东西~

很多开发者习惯把包括cookie、webstorage以及indexedDB存储的数据都称为缓存,实际这是一种很不严谨的说法。cookie用于服务端区别客户端,而后两者更多用于保存具体的数据和存储大量结构化数据上面。

真正意义上的缓存只有一种:就是请求资源的副本。通俗点说就是从服务器上拿到的资源自己本地做一个备份,下次再用的话直接使用备份就好啦,不用重新再去服务器拿一遍。但并不是每一个资源客户端都会保存一份副本,而是根据协议来处理这些缓存,开发者可以根据这份协议来控制缓存的建立和删除。这份协议就是可爱的http~~它里面定义了很多关于缓存的请求和响应字段(此文中只会大概提一下,不会详细说明。因为概念什么的太多了一下子也记不住,用到什么记什么这样效率最高了QAQ~)

那么,缓存的意义是啥嘞?就是当用户点击返回按钮或者再次去访问某个页面的时候,能够更快地相应。尤其是在

1.缓解服务器压力(服务器去响应每次客户端的请求)

2.提升性能(打开本地资源速度比去服务器请求一下再回来要快得多吧~~)

3.减少带宽消耗。(带宽是啥自行百度。。。)

缓存可以分为三类:

1.浏览器缓存

2.代理服务器缓存

原理和浏览器类似,但是规模要大很多,因为代理服务器是为成千上万的用户提供缓存机制,所以在减少响应时间和带宽使用方面很有效;因为同一个缓存可能会被重用多次。

由于缓存服务器不是客户端或者源服务器的一部分,它们存在于网络中,请求路由必须经过它们才会生效,所以实际上可以手动设置浏览器的代理,或者通过一个中间服务器进行转发,这样用户就察觉不到代理服务器的存在了~

3.网关缓存

也成为代理缓存或反向代理缓存。网关也是一个中间服务器,但一般是网站管理员自己部署,从而让网站拥有更好的性能。

4.数据库缓存

如果应用很复杂,那相应的数据库中的表也很繁杂,使用应用的时候就会频繁的进行数据库查询操作,这样可能会导致数据库不堪重负。一个好的办法就是将查询后的数据放到内存中,下一次查询直接从内存中取。

关于浏览器的缓存策略,详见https://juejin.im/post/5a6c87c46fb9a01ca560b4d7




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值