V2.8.3
更新日期:2026 年 10 月 24 日
以下内容以 V2.8.2 为基线,重点修复后台修改考试信息后教室端偶发不刷新的问题,并重新整理考试详情页的信息层级与操作入口。
V2.8.3 同时覆盖后台保存、生命周期动作、自动开考与结束、设计规则、批量预设和数据重置等写入路径。后台改动会主动推进考试快照版本,教室端通过心跳、同源页面通知以及回到前台时的主动核对获取最新安排。
升级影响
从 V2.8.2 升级到 V2.8.3 不需要数据库迁移,快照版本继续使用现有 exam_data.updated_at 字段。
本版不改离线编辑队列的数据格式。升级后刷新管理员页面与教室端页面即可;如需立即验证,可在后台修改一场考试后切回教室页,确认时间与科目安排已经更新。
一、同步改进
后台改动更快到达教室端
- 快照版本严格递增:考试与班级数据保存、考试记录生命周期动作、自动开考与结束、快速考试自动归档、设计规则、批量预设和数据重置都会推进
exam_data.updated_at;即使两次写入落在同一毫秒,后一次也会获得更新的版本。 - 写接口返回实际版本:保存考试和相关设置后,接口返回真正落库的快照版本,客户端不再使用请求发起时间猜测版本,避免后台已经写入而教室端仍按旧版本比对。
- 所有部署广播当前版本:设备心跳统一返回考试快照版本,本地、Docker 和云端部署都能据此触发同步;版本化边缘缓存作为独立能力返回,不会把云端缓存策略误用到本地服务。
- 写入后主动通知:管理员保存成功后,当前标签页会收到快照变更事件,其他同源标签页通过本地存储信号收到通知;教室端随即拉取最新完整快照。
- 切回页面主动核对:教室页重新可见、窗口重新聚焦、触发
pageshow或网络恢复时,会强制刷新考试数据,不再依赖下一轮 30 秒或 60 秒的兜底轮询。
避免旧数据覆盖新数据
- 强制刷新绕过缓存:变化后的读取会绕过 ETag、部分快照和浏览器缓存,直接获取完整快照。
- 旧响应不能回写:强制刷新会先等待正在进行的条件请求结束,并让并发普通读取复用这一次新请求,避免较早返回的旧快照在新快照之后覆盖本地缓存。
- 离线编辑保护不变:存在待同步 outbox 时,仍不会用服务器快照覆盖本地待办;版本提示、本地保存与离线队列继续按原有规则协同。
二、考试详情与操作改进
详情布局
- 详情固定在顶部:考试详情默认展开,可随时收起;科目进度与设备管理合并为连续面板,生命周期移动到页面底部,宽屏下不再把正文挤在左半栏。
- 设备列表常驻展开:右侧设备列表默认展开,并在面板内部滚动;高度与左侧科目区协调,不再需要额外点击“查看设备”。
- 入口按使用频率整理:公告管理提升为独立入口;“更多”菜单只保留删除草稿等低频操作,没有相关操作时不再显示。
- 按需展开内容:已结束科目和操作记录按需展开,操作记录使用独立滚动区域;标题、区块、正文与辅助文字的字号层级统一。
快捷延长
- 只延长当前科目:快捷延长会定位当前正在进行的单科考试,只更新该科目的结束时间,后续科目与整场结束时间不会被错误顺延。
- 保留原时间格式:本地时间和带时区时间的格式保持不变;其他科目时间异常时,也不会因此缩短整场考试。
- 操作反馈更清楚:延长设置改为浮层,备注按需展开;没有正在进行的科目时,入口仍会显示并说明“单科开考后可用快捷延长”。
- 操作记录可核对:自动开考等系统动作显示中文名称,单科延长记录会写明科目、延长分钟数以及改动前后的时间。
三、问题修复
- 修复后台更新考试安排后,教室端偶发继续显示旧科目时间、旧配置或旧考试状态的问题。
- 修复同一设备在管理页修改考试后切回教室页,页面虽重新可见但未及时拉取新快照的问题。
- 修复强制刷新与普通条件请求并发时,旧响应可能在新响应之后覆盖本地快照的问题。
- 修复快捷延长作用于整场考试、可能顺延后续科目时间的问题。
- 修复考试详情在宽屏下内容堆积、设备列表需要额外展开,以及科目与设备面板留有空隙的问题。
四、升级提示
- 升级前照常备份数据库与部署配置;V2.8.2 → V2.8.3 没有新增表、字段或手工迁移步骤。
- 云端部署按现有流程重新部署;本地与内网部署更新后重启服务。
- 更新后刷新管理员页面和教室端页面;如果仍加载旧版页面资源,再清理一次 Service Worker 缓存。不需要重新绑定设备。
- 建议验收:在后台修改考试时间或科目后切回教室页、在多个同源标签页保存考试、断网后恢复,确认页面最终都显示最新的完整安排。
- 使用快捷延长时先确认当前有正在进行的单科考试;系统只会延长该科目,不会改动后续科目。
更完整的兼容说明见版本兼容与升级。