Skip to content

游玩记录页面字段与分页参考 ​

本页说明游玩记录页面的卡片结构、展开详情、资源读取、判定数据和分页行为,补充游玩记录页面与分页、范围读取与文件接口。

页面加载状态 ​

页面可能显示:

  • 加载中;
  • 加载失败;
  • 暂无记录;
  • 当前页记录;
  • 换页中。

换页时页面可能暂时清空旧卡片并显示加载状态,这是为了避免把上一页误认为当前页。不要在换页中重复点击多个页码。

页码与范围 ​

页面有上一页、下一页、第一页、最后一页、附近页码、省略号和跳转页码输入。跳转输入会把字符串解析为整数,必须在 1 到总页数之间。

开发者使用公开接口时遵循 [start, end):

  • start 包含;
  • end 不包含;
  • 下一页按实际返回数量推进;
  • total 变化时保留当前范围记录。

记录卡片概要 ​

每条卡片可能显示:

  • TRACK 编号;
  • 封面;
  • 曲名;
  • 难度;
  • 游玩时间;
  • 达成率;
  • 评级;
  • DX 分数;
  • 游玩次数;
  • 展开详情入口。

封面懒加载失败时,文字字段仍应保留。不要把图片失败当作记录失败。

展开/收起 ​

卡片默认可以折叠,点击后展开详情,再点击收起。展开操作只影响当前浏览器,不会修改记录。打开详情时可能按需读取曲目 XML 或索引信息;详情失败时保留卡片概要并显示错误。

成绩区字段 ​

展开后可能有:

  • 达成率;
  • DX 分数;
  • Rating;
  • 游玩次数;
  • 最大连击和总连击;
  • 最大同步和总同步;
  • FAST;
  • LATE。

缺失字段要隐藏或显示未提供,不要强制转换成 0。FAST/LATE 是判定统计的一部分,不等于网络延迟。

判定区 ​

判定统计可能按类型显示数量或百分比。总量、最大连击和评分是不同概念:

  • 最大连击表示连续状态;
  • 总连击是记录中的目标总量/参考量;
  • 判定分布说明输入结果;
  • 不能用单个判定项推断机台网络。

导出时保留原字段和单位,页面格式化后的百分比不要再次换算。

基础信息区 ​

可能显示:

  • Music ID;
  • 曲师;
  • 谱面作者/配方作者;
  • Genre;
  • 内容版本;
  • BPM;
  • 谱面等级;
  • 定数。

如果 XML/索引详情读取失败,页面可能只显示记录中的基础字段。详情缓存命中不代表服务端已经更新,内容更新后刷新页面确认。

伙伴/对手区 ​

记录可能包含伙伴、对手、对战模式和对手 Rating。它们属于个人/互动信息:

  • 对外截图前遮挡名称和时间;
  • 缺失时不要显示“无对手”作为确定结论;
  • 对战模式是记录字段,不一定表示当前机台模式仍开启;
  • 对手 Rating 不等于当前用户 Rating。

时间语义 ​

页面显示的时间可能来自机台记录、服务处理或浏览器格式化。上传时间与游玩时间可能不同。反馈时间问题时记录:

  • 页面显示时间;
  • 当前时区;
  • 机台发生时间;
  • 上传/处理时间(如页面可见)。

不要直接修改备份 JSON 来“对齐”时间。

空状态判断 ​

页面表现可能原因下一步
暂无游玩记录账号确实没有记录确认账号和时间
某页为空范围超出或服务过滤返回上一页/刷新
整页加载失败Token/网络/服务记录消息后重试读取
卡片有文字无封面图片详情失败单独重试图片
展开无详情XML/索引缺失保留概要并反馈

分页回归清单 ​

  • [ ] 第一页和最后一页按钮边界正确;
  • [ ] 当前页高亮;
  • [ ] 跳转越界不会请求;
  • [ ] 换页期间按钮状态清楚;
  • [ ] 页码变化不会改变账号;
  • [ ] 记录卡片展开状态不覆盖新页;
  • [ ] 空页和请求失败文案不同;
  • [ ] 账号切换后旧响应不会写入新页面。

隐私与导出 ​

游玩记录可能含用户、地点、伙伴、对手和精确时间。导出/截图只保留排障所需字段,原始完整记录放在受保护位置,不要把记录 JSON 发送到公开聊天。

Released under the CC BY-NC-SA 4.0 License.