本文长期更新,如有错误,还望指正!
欢迎关注哦 ~ 更新于2019年6月20日16:04:15
概述
缓存api和返回的数据。避免多次重复请求,浪费时间和服务器资源。
适用条件
- get类获取数据接口 (restful)
- 返回数据比较固定
比如 历史数据(不更新),用户定制菜单(很少更新),尤其是对系统类网站优化效果显著。
大体思路
将请求url和返回解雇以键值对形式保存在内存中,key是api名称,value是返回的数据。
再次请求时判断本地是否有缓存,有则不再请求,无则去请求。
功能需求
同一个接口,需要区分参数进行存储
接口名+参数,使用hash生成唯一字符串支持异步
支持Promise
使用axios考虑并发的情况,并非会造成多次请求
存储axios返回的Promise对象支持有效时间且过期清除
增加创建时间戳支持手动清除
避免占用过多的空间
对缓存数量进行限制
使用示例
开发后已发布到npm,可以直接import使用,源码和api点这里
安装
npm i -S cache-get
直接使用
import cacheGet from 'cache-get';
cacheGet.get(url, { params: {x} }).then((res) => {
// 请求成功
}).catch((err) => {
// 请求失败
})
集成到vue
- 入口文件引入
import cacheGet from 'cache-get';
Vue.prototype.$cacheHttp = cacheGet ;
- 组件内使用
this.$cacheHttp.get(url, { params: {x} }).then((res) => {
// 请求成功
}).catch((err) => {
// 请求失败
})