本文介绍了Vue2 SSR 缓存 Api 数据,分享给大家,具体如下:
1. 安装缓存依赖: lru-cache
npm install lru-cache --dev
2. api 配置文件
config-server.js
var LRU = require('lru-cache') let api if (process.__API__) { api = process.__API__ } else { api = process.__API__ = { api: 'http://localhost:8080/api/', cached: LRU({ max: 1000, maxAge: 1000 * 60 * 15 }), cachedItem: {} } } module.exports = api
配置下lru-cache
3. 封装下 api
import axios from 'axios' import qs from 'qs' import md5 from 'md5' import config from './config-server.js' export default { post(url, data) { const key = md5(url + JSON.stringify(data)) if (config.cached && config.cached.has(key)) { return Promise.resolve(config.cached.get(key)) } return axios({ method: 'post', url: config.api + url, data: qs.stringify(data), // 其他配置 }).then(res => { if (config.cached && data.cache) config.cached.set(key, res) return res }) } }
ajax 库我们用axios, 因为axios在 nodejs 和 浏览器都可以使用
并且将 node 端和浏览器端分开封装
import config from './config-server.js'
const key = md5(url + JSON.stringify(data))
通过 url 和参数, 生成一个唯一的 key
if (config.cached && config.cached.has(key)) { return Promise.resolve(config.cached.get(key)) }
if (config.cached && data.cache) config.cached.set(key, res)
判断下是不是开启了缓存, 并且接口指定缓存的话, 将 api 返回的数据, 写入缓存
注意:
这个 api 会处理所有的请求, 但是很多请求其实是不需要缓存的, 所以需要缓存可以在传过来的 data 里, 添加个 cache: true, 如:
api.post('/api/test', {a: 1, b:2, cache: true})
不需要缓存的直接按正常传值即可
当然这里标记是不是要缓存的方法有很多, 不一定要用这一种
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Android WebView 缓存详解,包括了Android WebView 缓存详解的使用技巧和注意事项,需要的朋友参考一下 Android WebView 缓存详解 一. 两种缓存类型: 页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地影响到这些缓存数据。 而
本文向大家介绍详解Mybatis的缓存,包括了详解Mybatis的缓存的使用技巧和注意事项,需要的朋友参考一下 Mybatis的缓存 mybatis是一个查询数据库的封装框架,主要是封装提供灵活的增删改sql,开发中,service层能够通过mybatis组件查询和修改数据库中表的数据;作为查询工具,mybatis有使用缓存,这里讲一下mybatis的缓存相关源码。 缓存 在计算机里面,任何信息都
本文向大家介绍spring缓存代码详解,包括了spring缓存代码详解的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是spring缓存的相关内容,具体介绍如下。 这篇文章是根据谷歌翻译大致修改出来的,由于原文不知道是什么语,所以可能导致翻译的有错误和不准确的地方,但是大致的方向感觉还是蛮不错的,所以在这里整理了一下,希望能够有所帮助。 高速缓存一直是一个非常需要这两个提高应用程序性能并降
主要内容:1.AP 特性,2.服务状态,3.Eureka Server,4.缓存机制,5.Eureka Client,6.默认配置下服务消费者最长感知时间,7.网关实现服务下线实时感知1.AP 特性 从 CAP 理论看,Eureka 是一个 AP 系统,优先保证可用性(A)和分区容错性§,不保证强一致性©,只保证最终一致性,因此在架构中设计了较多缓存。 2.服务状态 Eureka 服务状态 enum 类:com.netflix.appinfo.InstanceInfo.Ins
本文向大家介绍详解Java实现LRU缓存,包括了详解Java实现LRU缓存的使用技巧和注意事项,需要的朋友参考一下 LRU是Least Recently Used 的缩写,翻译过来就是“最近最少使用”,LRU缓存就是使用这种原理实现,简单的说就是缓存一定量的数据,当超过设定的阈值时就把一些过期的数据删除掉,比如我们缓存10000条数据,当数据小于10000时可以随意添加,当超过10000时就需要把
本文向大家介绍详解Spring Boot使用redis实现数据缓存,包括了详解Spring Boot使用redis实现数据缓存的使用技巧和注意事项,需要的朋友参考一下 基于spring Boot 1.5.2.RELEASE版本,一方面验证与Redis的集成方法,另外了解使用方法。 集成方法 1、配置依赖 修改pom.xml,增加如下内容。 2、配置Redis 修改application.yml,增