97054a9699
- user 端:课程/活动/报名/测评/政策/调研 - 后端已并入 server-core/app/training,/api/* 走 opc.pinesound.cn
20 lines
578 B
JavaScript
20 lines
578 B
JavaScript
/**
|
|
* 短缓存:内存 Map,按 key 缓存异步结果(TTL 毫秒)。
|
|
* 用于列表类接口(活动/题目/配置),减少重复请求与"空→内容"跳变。
|
|
* 仅前端缓存,不影响后端数据。
|
|
*/
|
|
const store = new Map();
|
|
|
|
export async function cached(key, ttl, fn) {
|
|
const hit = store.get(key);
|
|
if (hit && Date.now() - hit.t < ttl) return hit.data;
|
|
const data = await fn();
|
|
store.set(key, { t: Date.now(), data });
|
|
return data;
|
|
}
|
|
|
|
/** 清空全部缓存(登出/主动刷新时用) */
|
|
export function clearCache() {
|
|
store.clear();
|
|
}
|