Implementation Plans
Calibration 加载性能设计
Calibration 加载性能设计
目标
把 Calibration 的首屏工作量从“读取、传输并渲染全部内容”改为固定大小的首批内容,同时保持 Feedback、筛选和内容排序的现有语义。
方案
- 服务端首次只读取 50 条内容;游标由
created_at与id组成,保证排序稳定。 - 新增只读
GET /api/calibration,支持cursor、filter与受限的limit。切换筛选时重置列表,点击“加载更多”才请求下一页。 - Calibration 查询使用一次作者聚合和一次最新 Feedback 聚合,再 join 到当前页,替换每行相关子查询。
- 增加排序、作者聚合及最新 Feedback 所需的 SQLite 索引。
- 客户端只渲染已加载页;筛选项单独从数据库读取,因此不会因为首屏只有 50 条而缺失。
错误与兼容性
- 非法 API 参数返回 400;请求失败在页面内提示,可重试。
- 保留
getCalibrationContentItems(),供既有测试和调用方取得完整集合。 - Feedback 保存后仍刷新服务端数据,保证 Profile 与 History 一致。
验证
- 数据库测试覆盖分页、游标、分类筛选、未反馈筛选与最新 Feedback。
- Route Handler 测试覆盖分页成功和非法参数。
- 运行
npm test、npm run build,并比较/calibration的响应体与本地加载耗时。