localStorage作为cookie的替代品,可以对前端性能优化做一些文章。
缓存普通数据
由于不会被http请求带上,localStorage本事对性能就算优化了一层
缓存接口
这个业内使用的也比较多,对那些请求量比较大、而且改动不算频繁的接口,可以通过localStorage缓存到本地
大体思路:
- 第一次请求接口时,正常请求并存入localStorage,同时存入当前时间戳
- 再次使用该接口时,对比当前时间与存入的时间戳,如果未到存储时间的话,直接从缓存中取数据
- 如果时间超时,再次正常请求接口,并更新时间、接口内容到缓存
下面是我封装了一个getLocalOrRemote.js
|
|
缓存css、js文件
类似于缓存接口,可以在第一次请求到css、js文件之后,缓存到localStorage里面,下次如果命中缓存的话,通过appendChild的方法,塞到界面的head中。
这种缓存意义比较小,因为css、js文件,一般非首次请求的话,就会命中缓存,最少也是协商缓存,即http为304的请求。
如果使用cdn的话,会命中强缓存,压根不用执行JS文件去判断是否到期,直接通过浏览器的内部缓存机制,直接从缓存里面拿数据,省事的很。
缓存图片
localStorage只能缓存字符串,但是可以通过与canvas配合,将图片缓存起来
|
|
总结
localStorage可以缓存N多东西,但是在开发、管理缓存上,也需要多花一些精力,具体还需要看业务需求。