为什么做这个功能
刷题是软考备考里最高频的动作,但一次练习从开始到提交,往往不是一口气就能做完的:
- 做到一半有会议、有电话、有临时被打断的事
- 手机切到别的 App 回来、浏览器关了再打开
- 同一套题想分两三次完成
在此之前,每次从题库入口进去都是"开一轮新练习",前一次没做完的答题记录就被动放弃了,用户反映"答了一半白答"。
这次把断点续练做完整。
具体做了什么
1. 进入题库时的识别与弹框
点击任意题库的"开始练习"时,如果账号下有同题库同模式的未完成练习,会先弹框提示:
- 继续上次:恢复到你最后一道未作答的题目
- 开新一轮:主动放弃上一次记录,重新开始
没有未完成练习的情况下,行为不变,直接进入练习页。
2. 刷题主页和个人中心的"进行中练习"卡片
进入刷题主页或个人中心后,顶部会展示你当前的"进行中练习"卡片,包含:
- 所属题库名称
- 已作答题数 / 总题数
- 最近一次作答时间
- "继续练习"按钮
点击卡片即可直达原练习页,精确落位到未作答的下一题。
3. 练习会话页的精确恢复
练习会话页支持通过 record_id 精确恢复到某一次练习的会话现场,包括:
- 已作答题目的选项状态
- 当前题目的位置
- 本次练习的配置(题型筛选、章节范围等)
4. 后端接口配套
- 练习
start接口在检测到同上下文的进行中会话时,默认复用旧记录,不再强制开新 - 新增
force_new参数用于"我就是想开新一轮"的场景 - 新增
active查询接口,列出当前所有进行中的练习 - 新增
abandon接口,明确表达"我主动放弃这次练习"
用户会感受到的变化
- 中途被打断不再焦虑:不管是切别的 App 还是关浏览器,下次回来答题进度都还在
- 找入口更容易:不需要记得"我刚才在哪套题里",刷题主页和个人中心都会提示
- "继续"和"新开"不再混淆:想续练有续练的入口,想放弃有放弃的入口,路径清晰
- 跨题库互不干扰:A 题库没做完,不影响你在 B 题库另起一轮
相关范围
- 官网:刷题主页、题库详情页、练习会话页、个人中心
- 后端:小程序后端练习接口
这条记录的发布时间
以最后一次相关 git 提交的时间为准:2026-04-23 08:22:45。