字典是软件开发中常用的功能。使用字典的核心问题是翻译,因为数据库中存储的是代码,前台页面展示的是描述。用于多语言环境时,翻译过程还需要根据语言环境进行适配。为了加快字典的加载速度,千里马平台采用了后台缓存+前台缓存2级缓存机制。
以下代码摘自@/api/qlm_dictItem.js
export async function gainCodeItemList(setid){
let value=qlm_getValue(setid,"session")
if (value!=null){
return JSON.parse(value)
}
let ret=await queryCodeItemList(setid)
if (ret.retCode==88888888){
qlm_setValue(setid,JSON.stringify(ret.data),"session")
return ret.data
}
else{
console.info("gainCodeItemList:"+setid+" error:"+ret.msg)
return null
}
}
取字典时先从sessionStore中取(只所以存在sessionStore中是为了刷新方便),取不到时调用接口queryCodeItemList从后台取字典。
后台接收到请求时,先取缓存(根据配置取内存或redis),没有的话从数据库中读取。
维护字典信息时,需要实时刷新缓存。