定义变量
/**
* 开发缓存 开关
* 说明
* 方便开发使用 提升开发效率
* true 打开缓存
* false 关闭缓存 这里上线的时候必须改为
* @type {boolean}
*/
const cacheFlag = true
/**
* 排除某个url 方便开发时的数据实时生效
* 这里根据开发到哪个功能 实时变更, 比如开发
* 添加 修改 删除 功能等。。。
* 一般多用于查询
* url 开启缓存之后 可以通过F12浏览器 控制台查看 或者 网络 一定要匹配上
* 或者某个请求缓存遇到异常时 可以加入这里
* @type {string[]}
*/
const cachePaichuUrl = [
'',
'',
'',
]
包装 axios.js
//原始的request
const baseRequest = axios.create({
baseURL: baseUrl,
})
/**
* 做一层包装 方便单独处理
* @param params
* @returns {AxiosPromise}
*/
const request = (params)=>{
//判断是否走缓存
if(cacheFlag === true){
console.log('request:', params)
let url = params.url
let data = params.data
let all = {
url:url,
data:data
}
//加密MD5
let keyMd5 = md5(JSON.stringify(all))
console.log(keyMd5)
//判断排除的url是否包含
if(cachePaichuUrl.includes(url) === false){
let cache = getStore({ name: 'cache-'+keyMd5 })
if(cache){
console.log('走缓存:', cache);
return new Promise((resolve, reject)=>{
resolve(cache)
})
}
}
}
return baseRequest(params);
}
//HTTPresponse拦截 baseRequest.interceptors.response.use(res => {
在成功的时候 将加过加入到缓存里
if(cacheFlag === true){
let url= res.config.url
let data = res.config.data
if(data){
data = JSON.parse(data)
}
let all = {
url:url,
data:data
}
//加密MD5
let keyMd5 = md5(JSON.stringify(all))
// console.log('响应url:', url, keyMd5, all)
//设置缓存 可以用 localStore.set()
setStore('cache-'+keyMd5, res)
}
原文地址:https://blog.csdn.net/G971005287W/article/details/134587106
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_920.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。