diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index c6d2a8d..c91791f 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -512,7 +512,9 @@ P3 实现说明: - 未配置 token 时视为无鉴权,全部页面可见; - 只读接口不需要 CSRF;登录 POST 只建立会话,不修改业务数据; - API 返回 JSON;前端不复制热度、状态机或收藏夹归属判断; -- 不提供导出接口,结果只通过页面浏览。 +- 不提供导出接口,结果只通过页面浏览; +- 首页、榜单和粉丝的聚合结果使用内存 TTL 缓存:首页/榜单 1 小时,粉丝 24 小时; +- 缓存版本存放在 `kv`(`cache:v:videos` / `cache:v:fans`);快照、收藏夹同步、发现、收藏/忽略/拉黑、候选清理和粉丝 CSV 导入都会提升对应版本,使缓存立刻失效。 核心接口: diff --git a/README.md b/README.md index fa15529..e57088e 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,8 @@ uv run python app.py serve --preview --config data/preview/config.json - 首页、榜单、视频/UP、粉丝等页面和接口访客可见; - 配置 `web.auth_token` 后,“候选”和“系统”页面及其接口需要登录,启用登录页和 HttpOnly Cookie;访客的底部导航只显示公开页面; - 本地回环地址且未配置 token 时视为无鉴权,全部页面可见;非回环地址且未配置 token 时拒绝启动; -- 所有业务接口只接受 GET,写方法返回 `405`。 +- 所有业务接口只接受 GET,写方法返回 `405`; +- 首页/榜单聚合结果缓存 1 小时,粉丝结果缓存 24 小时;快照、收藏夹同步、发现、收藏操作和粉丝 CSV 导入会立即让对应缓存失效。 ### 预览数据 diff --git a/project.md b/project.md index 50f3f6e..19561d5 100644 --- a/project.md +++ b/project.md @@ -682,6 +682,7 @@ fan_delta_cum = follower(d) - follower(首日) - 单 `index.html` + 原生 ES Module,无构建链; - History API 路径路由(`/rank`、`/video/{aid}`、`/up/{mid}`),服务端对无扩展名的非静态路径回退 `index.html`; - 排序、筛选和趋势指标切换用 `replaceState` 更新 URL 并重新取数,保留滚动位置,不整页刷新; +- 首页/榜单聚合结果缓存 1 小时,粉丝结果缓存 24 小时;新快照、收藏夹同步、发现、收藏操作和粉丝导入会通过 `kv` 版本号立即失效对应缓存; - 图表本地 vendored ECharts(Apache-2.0,离线); - `/api/*` JSON,前端只渲染; - 移动端优先,底部 5 项导航;桌面端左侧导航;