Repository navigation
v1.0.1
NPClassworks v1.0.1 · Nijika(伊地知虹夏)
版本概述
v1.0.1 是基于 v1.0.0 的维护更新。
本次更新围绕现有的作业录入、教师会话、班级大屏和噪声监测进行改进,重点提升断网、存储异常、长期运行及应用升级时的可靠性,同时减少重复请求和本地存储开销。
新增功能
无。 本版本不新增业务功能,主要包含体验优化、Bug 修复、性能改进和测试完善。
体验优化
- 离线保存反馈更明确:只有成功写入本机队列才提示保存成功;写入失败时保留录入内容,提示用户恢复存储或联网提交。
- 同步状态更准确:待上传队列读取失败时显示独立的异常提示,保留当前绑定最近一次成功读取的列表,支持重新读取,不再误报“没有待提交作业”。
- 草稿恢复更稳妥:读取异常时保留原数据,暂停编辑和保存以避免覆盖;重新读取成功后恢复原文。草稿超过七天自动删除的规则保持不变。
- 大屏恢复更及时:恢复联网、回到前台或浏览器唤醒后重新校验并刷新作业,减少页面长时间显示旧内容的情况。
- 历史记录按需加载:教师和大屏的版本历史每页加载 20 条,支持继续加载更早版本,并从已加载的历史中恢复内容。
- 操作期间保护录入内容:打开作业录入窗口、正在提交或正在补传时暂缓远程重载;草稿保存失败时显示提示,避免关闭窗口丢失输入。
Bug 修复
离线作业与草稿
- 修复本机存储写入失败后仍将离线作业视为保存成功的问题。
- 修复待上传作业被数量上限和过期规则静默淘汰的问题:队列满 50 项时阻止新增;等待超过七天的作业保留供人工核对,不自动删除。
- 修复队列读取异常被当作空队列的问题,包括初始化、补传完成后的重新读取及手动处理路径。
- 修复读取或解析草稿失败后直接删除原文的问题,并处理存储访问及过期清理异常,避免异常中断录入窗口。
- 为首次提交和后续重试保留同一个请求标识,配合后端减少“服务器已保存、客户端未收到响应”时的重复创建。
登录与实时同步
- 为登录续期设置超时,区分暂时断网、服务故障与登录真正失效,减少网络波动导致的意外退出。
- 修复切换账号或退出后,旧会话响应覆盖当前令牌、列表或操作状态的问题。
- 防止慢心跳与连续前台恢复产生重叠请求;忽略旧绑定、旧令牌会话晚到的状态和远程指令。
- 合并正在进行的作业刷新请求;期间再有变化,当前请求结束后补一次刷新,减少重复请求及旧结果干扰。
- 修复通知回执的已确认状态被后到的展示状态降级,以及队列销毁后旧响应继续安排重试的问题。
噪声监测与诊断
- 修复麦克风授权、设备测试和音频初始化晚到时重新启动已停止监测的问题,及时释放迟到的音频流和旧会话资源。
- 修复关闭计划、关闭工具、解绑或卸载时,尚未完成的定时监测仍继续启动的问题。
- 修复噪声历史读取、保存和清空的异常反馈及竞争问题,避免迟到结果覆盖已清空的界面。
- 改善新旧页面并存时的噪声历史合并,避免漏掉旧页面后续写入,也避免清空后的记录被再次导入。
- 校正性能采样,分别记录后台暂停和超长采样间隔,减少将休眠、后台冻结误判为前台卡顿的情况。
性能与资源优化
- 教师界面按角色加载,作业录入、历史记录、通知回执等弹窗按需加载;继续保留 PWA 预缓存,支持安装缓存完成后断网首次打开相关弹窗。
- 作业补传采用逐步退避和随机延迟,恢复联网后及时尝试,减少集中重连时的请求压力。
- 通知回执离线时暂停发送,临时故障逐步延长重试间隔,权限或参数错误停止自动重试并记录原因。
- 显示缓存增加过期清理和容量限制,清理范围与待上传作业队列、草稿分离。
- 普通诊断快照按短时间窗口合并保存,关键事件及时记录,减少反复同步读取和重写本地存储。
- 噪声历史改为 IndexedDB 增量保存,减少整份历史的同步序列化与重写;保持最近 14 天、最多 5,000 条统计的保留规则。
清理与兼容性调整
- 移除 UAF(统一作业交换格式)相关导出代码、第三方打包文件、字体与生成脚本。
- 清理残留 Store、无效代码和 ESLint 错误;拆分教师会话、大屏同步、作业数据及学校管理逻辑,降低后续维护的影响范围。
- 噪声历史自动导入新版存储,并兼容仍在运行的旧页面继续写入。旧版本无法读取仅保存在新版 IndexedDB 中的新历史,回退前端时需留意这一差异。
测试与发布保障
- 增加实际 Store、Vue 组件逻辑和 HTTP 交互测试,覆盖存储失败、账号切换、版本冲突及异步响应竞争。
- 增加 Chromium 浏览器回归,覆盖教师发布到大屏更新、断网刷新与补传、PWA 更新、历史恢复、远程重载、草稿恢复和噪声历史持久化。
- 将浏览器测试与单元测试、无自动修复的 Lint 检查、构建检查一起纳入生产部署前置条件。
升级说明
- 建议与 NPClassworksKV v1.0.1 配套升级,以获得完整的提交去重、历史分页及权限修复。
- 保留现有同源或独立 API 域名的部署方式,无需为本版本调整域名或手动修改部署代理。
- 无需主动清除浏览器数据。升级前应确认未提交内容已保存;队列或草稿出现存储异常时,先按提示恢复,避免清除尚未上传的数据。
- 本版保留旧队列的存储格式;历史分页也兼容升级期间旧后端的数组响应,但完整的网络开销优化需要后端同步升级。